1、布尔型: bool
取值范围:true/false
注意:不能 用数字0或者空来代表false 或者说 用非零来代表true
2、整形:
int(有符号整形)/uint(无符号整形)
注意事项:整形是多少位取决于平台,即平台上32位则整形也就是32位的
8位整形:int8/uint8
取值范围:-128~127/0~255
注意:还有16位整形、32位整形、64位整形有符号和无符号
字节型:byte(unit8的别名)
取值范围:0~255
注意:还有一个别名“rune”,它是int32位的别名
3、浮点型
float32/float64
注意:精确位数--float32精确到7位小数,float64精确到15位小数
4、复数:complex64/complex128
5、其他值类型:
array、struct、string
6、引用类型:
slice、map、chan(通道用到)
7、接口类型:
interface
8、函数类型:
func
9、类型的零值:
值类型的零值:0;布尔类型的零值:false;string类型的零值:空字符串;引用类型的零值:nil
10、类型最大值和最小值的获得:
导入math包 ep: int32的最大值math.MaxInt32:,最小值:math.MinInt32, 其他类型同理
11、变量的声明:
情况1:先声明,后面再赋值
注意:必须 var name string , 不能 var name
name = "lxc"
情况2:全局变量的声明)
可以是:var name string = "lxc" , 或者是 var name string(后面赋值) 再或者是 var name = "lxc" , 绝对不能是 name := "lxc"
情况3:变量最简写法
name := "lxc"
12、变量的类型转换:
注意:Go语言中所有的类型转换都必须显示的。 转换只发生在两种相互兼容的类型之间。比如:
var s float32 = 10.11
var ss string = "10.11"
var flag = true
b := int(s) //10
c := int(ss) //cannot convert(转换) ss (type string) to type int ,但是可以通过: c,err := strconv.Atoi(ss)
d := int(flag) //cannot convert flag (type bool) to type int
特别注意:
type newInt int
此时:用newInt和int声明的变量如果之间发生赋值操作,则需要进行显示的转换。
ep:
type newInt int
var age newInt = 10
var num int = 12
age = newInt(num) //这里必须使用newInt进行显示转换
而: byte(uint8)和rune(int32)则不需要
13、查看一个变量的类型的方式:
var name string = "lxc"
fmt.Printf("%T", name) //string