一 类型
Go语言中内置的基础类型和各类型的初始值为:
啥叫初始值?也就是没有初始化的值,比如:
var a intfmt.Println(a) // 变量a没有被代码初始化,a现在的值就是初始值,此处打印出0。
等一下,这里面混进了两个比较奇怪的东西,rune和uintptr。rune是Unicode类型,和int32等价,在后续的文章中讲string的时候会重点介绍,uintptr是无符号整数,存放的是指针的值,可以理解为用来保存指针。
Go语言中除了这些基础类型,还有数组、切片、字典、指针、结构体、通道、函数、接口这些类型,后续的文章会详细讲这些。
二 变量
Go语言定义变量使用var关键字。定义变量时可以选择指定类型,或者让编译器自动推导出类型,可以指定初始化值,也可以使用编辑器的初始值。如下:
var a int // a没有初始化值,会使用编译器中int的默认值0。var b int = 2 // 声明变量时指定类型,同时指定初始化值。var c = 2 // 声明变量时指定初始化值,让编译器推导出类型。var d, e int = 3, 4 // 同时声明多个变量
Go语言中还有一种简短的声明变量方式,即使用“:=”。
b := 2 // 简短的声明变量b。
注意,“:=”是用于声明变量的符号,使用“:=”,符号左边一定要至少有一个新生命的变量。如:
b := 3 // 此行报错,b在上面已经被声明过了。b, c := 4, 5 // 此行正确,因为符号左边至少有一个新声明的变量c。这一行执行完后,b的值就变成4了。
2.1 常量
Go语言声明常量很简单,使用const关键字就行。
const a = "2"a = "3" // 编译错误,a是常量,不能再修改它的值。
2.2 iota计数器
当我们要多个常量来表示计数器的时候,可以使用Go语言内置的常量计数器。当iota出现时,对应的变量值为0,每往下一行,变量值就加1。
const ( a = iota // iota出现的地方,该变量值为0,即a的值为0。每往下一行,变量值就加1。 b // b的值为a的值加1,即1。 c = "str" // c设定了初始化值,破坏了iota往下的赋值规则,因此iota失效。c的值为str。 d // 常量d未指定初始化值,自动使用上一行的初始化值,dd值为str。)fmt.Println(a) // 输出0fmt.Println(b) // 输出1fmt.Println(c) // 输出strfmt.Println(d) // 输出e
iota再次出现时,变量值重新为0。每往下一行&