通常人们认为iota就是0,其实并非如此.
    确切的说,当iota在紧跟着关键字const的每行出现时,iota为0,在第二行出现时,iota为1,以此类推;当iota再次遇到const时,重置为0

    1. package main
    2. import "fmt"
    3. const a = iota
    4. const b = iota
    5. const c = iota
    6. func main( ){
    7. fmt.Println("a,b,c",a,b,c)
    8. }

    输出:

    1. a,b,c 0 0 0

    2.例2

    1. package main
    2. import "fmt"
    3. cosnt (
    4. a = iota
    5. b = iota
    6. c = iota
    7. )
    8. func main(){
    9. fmt.Println("a,b,c",a,b,c)
    10. }

    输出:

    1. a,b,c 0 1 2

    3.例3

    1. package main
    2. import "fmt"
    3. const (
    4. a,b,c = iota,iota,iota
    5. )
    6. func main (){
    7. fmt.Println("a,b,c",a,b,c)
    8. }

    输出:

    1. a,b,c 0 0 0

    在这个例子中,由于iota在同一行,因此,只计算一次,就是0

    4.例4

    1. package main
    2. import "fmt"
    3. const (
    4. a = -1
    5. b = iota
    6. c = iota
    7. )
    8. func main() {
    9. fmt.Println("a,b,c",a,b,c)
    10. }

    输出:

    1. a,b,c -1 1 2

    在这个例子中,由于iota在const的第二行出现,因此是1,这是最常犯的错误