先看一个例子
package main
import (
"fmt"
)
const (
A = iota
B
C
D = 8
E
F = iota
G
)
const (
A1 = iota
A2
)
func main() {
fmt.Println(A)
fmt.Println(B)
fmt.Println(C)
fmt.Println(D)
fmt.Println(E)
fmt.Println(F)
fmt.Println(G)
fmt.Println("------------------")
fmt.Println(A1)
fmt.Println(A2)
}
打印结果:
0
1
2
8
8
5
6
—————————
0
1
首先说递增:
iota的递增是在const作用域里进行递增的,是从0开始递增的
第11行我将D的值改为8后,E没有写,但是默认他的表达式和D是一样的,所以E的值也是8
F的值为5,那是因为iota是每隔一行递增。所以递增到F为5
iota遇到const会重置为0