变量:主要作用是存储信息,类似一个容器。变量的值是存储在计算机内存中。 在go中,变量有三个属性:变量类型、变量名和变量值。
var 变量名 变量类型
例子:
1 var name string
2 var age int
3 var isOk bool
4
5 var (
6 a string
7 b int
8 c bool
9 d float32
10 )
在变量声明的时候,会分配内存空间(地址),每个变量会被初始化成其类型的默认值,整型和浮点型是0,字符串是空字符串,布尔类型是false,切片、函数、指针变量是nil; 声明变量并初始化的时候也可以不用指定类型,go语言会根据等号右边的值类型自动推导变量的类型。
例子:
1 var name = "xiaoming"
2 var age = 18
在函数内部可以使用 := 方式声明并初始化变量 例子:
1 func main() {
2 n := 10
3 }
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。 注意事项:
常量:相对于变量来说,常量就是在程序运行过程中不会变的值。
声明和初始化常量和变量类似,关键字换成 const 。
const 同时声明多个常量时,如果省略了值则表示和上面一行的值相同。
例子:
1 const (
2 n1 = 100
3 n2
4 n3
5 )
上面示例中,n1、n2、n3都是100。
iota是go语言的常量计数器,只能在常量的表达式中使用。 iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。
几个常见的iota示例:
1 const (
2 n1 = iota // 0
3 n2 // 1
4 n3 // 2
5 n4 // 3
6 )
1 const (
2 n1 = iota // 0
3 n2 // 1
4 _
5 n4 // 3
6 )
1 const (
2 n1 = iota // 0
3 n2 = 100 // 100
4 n3 = iota // 2
5 n4 // 3
6 )
7 const n5 = iota // 0
1 const (
2 a, b = iota + 1, iota + 2 // 1 2
3 c, d // 2 3
4 e, f // 3 4
5 )