1.类型推导 :
package main
func main(){
b:=20
println(b)
}
a,b,c,d:=1,2,2,4
fmt.Println(a,b,c,d)
2.print与println在有多重输出语句时,不是按顺序执行
- byte
- 变量值交换是a,b=b,a
var a,b int8 //(这里int8改为uint8,byte都可以输出a,s对应的ascII码值)
a='a'
b='s'
b=a
//a=b //这边打开也不会输出
fmt.Println(a,b) //97,97
- 类型转换时,uint8与byte可直接转换
var a uint8 = 8
var b byte = 'a'
b=a
//a=b //这边打开也不会输出
fmt.Println(a,b) //8,8
4.同时赋值
//var a,b,s=20,30,"haha"
a,b,s:=15,20,"aa"
fmt.Println(a,b,s)
上面两种赋值方式结果相同
变量再次赋值时,不能加var
5.数据类型
- 基本数据类型(原生数据类型):
整型(int,uint,byte,rune) 浮点型 复数 布尔型 字符串 - 复合数据类型(派生数据类型):指针(pointer) 数组(array) 切片(slice) 映射(map) 函数(function) 结构体(struct) 通道(channel) 接口(interface)
6.float32
其值一般保留有效数字8位(含整数位和小数位,有时是7位),整数位为0时,保留小数点后8位.第7,8位精度不高
(整数位为1时,最后一位若保留的小数点后最后一位的下一位<8时舍弃,为8和9时向前进1;整数位为2时,末位加1)
7.默认值
整型,浮点数:0
bool:false
complex64,complex128:0+0i
string:""(即空串)
8.printf格式化输出
%c:字符
%s:字符串
%d:十进制表示. %3d%:位数不足3位左边补空格,-3d右边补空格.03d,补0
%t:布尔
%f:小数表示 %.3f%,小数位数为3位
%2.4f%,整数2位,小数4位
9.基本数据类型和string之间的转换
func Sprintf(format string, a ...interface{}) string
Sprintf格式根据format参数并返回产生的字符串
var num1 int = 99
var num2 float64 = 3.123
var b bool = true
var myChar byte = 'h'
var str string
str=fmt.Sprintf("%d",num1)
fmt.Printf("str type:%T str=%q\n",str,str)
str=fmt.Sprintf("%f",num2)
fmt.Printf("str type:%T str=%q\n",str,str)
str=fmt.Sprintf("%t",b)
fmt.Printf("str type:%T str=%q\n",str,str)
str=fmt.Sprintf("%c",myChar)
fmt.Printf("str type:%T str=%q\n",str,str)
结果
str type:string str="99"
str type:string str="3.123000"
str type:string str="true"
str type:string str="h"
网友评论