golang 常量 iota

package main

import "fmt"

const (
    a = iota
    b
    c
    d = 1// 新的常量声明 iota 不再向下赋值
    g = 2
    f // 如果常量没有赋值,继承上一个常量值
)

// 如果都不赋值,语法错误
//const(
//    l
//    i
//    q
//)

const(
    e = 2
)

const(
    h = iota // 遇到一次const, iota 重置为 0
    y // y = 1
    z // z = 2
)



func main(){
    fmt.Printf("a: %d b: %d c: %d\n", a, b, c)// a: 0 b: 1 c: 2
    fmt.Printf("d: %d e: %d\n", d, e)// d: 1 e: 2
    fmt.Printf("f: %d\n", f)// f: 2
    fmt.Printf("g: %d\n", g)// g: 2
    
    fmt.Printf("h: %d y: %d z: %d\n", h, y, z)// h: 0 y: 1 z: 2
}



你可能感兴趣的:(golang)