一,const修饰的常量
1,常量只能是bool ,整型,string, 浮点型
2, const a int = value 或 const a = value (显式与隐式)
3,多个一起声明
const name1, name2 = value1, value2
4, const 用作枚举
package main
2
3 const(
4 a = 0
5 b = 1
6 c = 2
7 )
8
9 func main(){
10 println(a, b, c)
11 }
root@localhost GO]# ./hello
0 1 2
二, iota修饰的特殊常量
1,iota可以看作是可以被编译器修改的常量
//有点枚举的意思
1 package main
2
3 const(
4 a = iota
5 b = iota //(也可直接写成b)
6 c = iota //同上
7 )
8
9 func main(){
10 println(a, b, c)
11 }
[root@localhost GO]# ./hello
0 1 2
//有点联合体的意思,共享同一块内存
package main
2
3 const(
4 a = 1
5 b
6 c
7 )
8
9 func main(){
10 println(a, b, c)
11 }
[root@localhost GO]# ./hello
1 1 1
1 package main
2
3 const(
4 a = 1 << iota //iota为0, 1向左移0位,还是1
5 b // b为1, iota为1, 1向左移动一位,为2
6 c //c = 1, iota为1, 移动两位, 为4
7 d = 10
8 e //d为10
9 f = iota // iota恢复计数
10 g
11 )
12
13 func main(){
14 println(a, b, c, d, e, f, g)
15 }
root@localhost GO]# ./hello
1 2 4 10 10 5 6