先看一个例子

    1. package main
    2. import (
    3. "fmt"
    4. )
    5. const (
    6. A = iota
    7. B
    8. C
    9. D = 8
    10. E
    11. F = iota
    12. G
    13. )
    14. const (
    15. A1 = iota
    16. A2
    17. )
    18. func main() {
    19. fmt.Println(A)
    20. fmt.Println(B)
    21. fmt.Println(C)
    22. fmt.Println(D)
    23. fmt.Println(E)
    24. fmt.Println(F)
    25. fmt.Println(G)
    26. fmt.Println("------------------")
    27. fmt.Println(A1)
    28. fmt.Println(A2)
    29. }

    打印结果:
    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