变量:
golang中不存在没有初始化的变量数据,整形默认为0,字符型默认为空,指针默认为nil,结构体中的数据也会被初始化。
//varstrstring="dfdfdf"
//varvaruint8uint8//varuint8=0声明一个变量,默认为0 //varstrstring//str="",默认为空
//fmt.Println(varuint8)
//str="dfd"
str:="dsa"//str为一个字符串,声明赋值同时完成
uintvar:=123456//uintvar为一个整形变量 _,b:=34,35//“_”为特殊变量,任何赋给“_”的值将会被丢弃 fmt.Println(b)//输出35
fmt.Println(uintvar)//输出123456
fmt.Println(str)//输出dsa KeyPoint: ①、修改代码后需重新build后运行才能看到修改后的效果,直接运行不会看到修改后的效果,看到的是上一次的结果。。。 ②、若声明了变量但未使用该变量会报错,程序不会执行该变量之后的代码 ③、全局变量不能使用“:=”的形式,声明并赋值 1、整形变量 整形类型根据电脑的硬件决定适当的长度。意味着在32位硬件上,是32位的;在64位硬件上是64位的。注意:int是32或64位之一,不会定义成其他值。uint情况相同。 如果你希望明确其长度,你可以使用int32或者uint32。完整的整数类型列表(符号和无符号)是int8,int16,int32,int64和byte,uint8,uint16,uint32,uint64。byte是uint8的别名。浮点类型的值有float32和float64(没有float类型)。64位的整数和浮点数总是64位的,即便是在32位的架构上。 KeyPoint:不能给某一类型的整形变量赋值其他整形类型 Ex: varvaruint8uint8 varvarintint
varint = varuint8 + varuint8 //illegal
varint = varuint8 + 5 //illegal
varuint8 = varuint8 + 5 //This is ok
2、常量
①、使用const关键字
②、不用指明是哪种类型
③、可使用iota创建枚举
Ex:
constsd=5//整形常量
constsdstr="df"//字符串常量
const(
cnum1=iota//cnum1=0
cnum2//cnum2=1
)
const(
cnum3="djjf"//cnum3=cnum4=cnum5="djjf"
cnum4
cnum5
)
const(
cnumint1=1//cnumint1=cnumint2=cnumint3=1
cnumint2
cnumint3
)
const(
cnumstr1=1//cnumstr1=1
cnumstr2="dfd"//cnumstr2="dfd"
cnumstr3="djfj"//cnumstr3="djfj"
)