# iota
iota
是 go
语言的常量计数器,只能在常量的表达式中使用。 iota
在 const
关键字出现时将被重置为 0
。 const
中每新增一行常量声明将使 iota
计数一次 ( iota
可理解为 const
语句块中的行索引)。 使用 iota
能简化定义,在定义枚举时很有用。
举个例子:
const ( | |
n1 = iota //0 | |
n2 //1 | |
n3 //2 | |
n4 //3 | |
) |
# 1.2.2. 几个常见的 iota 示例:
使用_跳过某些值
const ( | |
n1 = iota //0 | |
n2 //1 | |
_ | |
n4 //3 | |
) |
iota
声明中间插队
const ( | |
n1 = iota //0 | |
n2 = 100 //100 | |
n3 = iota //2 | |
n4 //3 | |
) | |
const n5 = iota //0 |
定义数量级 (这里的 <<
表示左移操作, 1<<10
表示将 1
的二进制表示向左移 10
位,也就是由 1
变成了 10000000000
,也就是十进制的 1024
。同理 2<<2
表示将 2
的二进制表示向左移 2
位,也就是由 10
变成了 1000
,也就是十进制的 8
。)
// 左移 n 位就是 乘以 2 的 n 次方 | |
// 右移 n 位就是 除以 2 的你次方 | |
const ( | |
_ = iota | |
KB = 1 << (10 * iota) | |
MB = 1 << (10 * iota) | |
GB = 1 << (10 * iota) | |
TB = 1 << (10 * iota) | |
PB = 1 << (10 * iota) | |
) |
多个 iota
定义在一行
const ( | |
a, b = iota + 1, iota + 2 //1,2 | |
c, d //2,3 | |
e, f //3,4 | |
) |