1. iota 的使用方式
iota 标识符仅能用于常量声明语句中,其取值与 const 语句块中代码的行数强相关。
const (
bit0, mask0 = 1 << iota, 1 << iota - 1 // iota == 0, bit0 == 0001, mask == 0000
bit1, mask1 // iota == 1, bit1 == 0010, mask == 0001
_, _ // iota == 2
bit3, mask3 // iota == 3, bit3 == 1000, mask == 0111
)
2. iota 的取值规则
iota 的取值规则只有一条:iota 代表了 const 声明块的行索引(下标从 0 开始)。 const 声明的一个特点是,若为常量指定了一个表达式,而后续的常量没有表达式,则会继承上面的表达式。
在单个const 声明块中,每增加一行声明,iota 的值增 1,即使声明中没有使用 iota。 由此也可知,在同一行中出现多个 iota,其取值是相同的。
const (
A = 100 // iota == 0, A == 100
B // iota == 1, B == 100
C = iota // iota == 2, C == 2
D // iota == 3, D == 3
_ // iota == 4
F // iota == 5, F == 5
G = 0 // iota == 6, G == 0
H, I = 42 * iota, iota * iota + 3 // iota == 7, H == 294, I == 52
J, K // iota == 8, J == 336, K == 67
)