枚举
关键字iota定义常量数组中从0开始安航基数的自增枚举值
package main
func main() {
const (
a = iota
b
c
d
)
println(a,b,c,d) //0 1 2 3
}
同一个常量组中可以提供多个iota,它们各自增长
package main
func main() {
const (
a,b = iota, iota
c,d
e,f
)
println(c,d) //1 1
}
如果iota自增被打断,须显示恢复
package main
func main() {
const (
a = iota
b = "a"
c = 100
d = iota
e
)
println(d, e) //3 4 常量值d进行了显示恢复iota的值,计算的时候算上了b,c两行
}
可通过自定义类型来限制枚举类型限制
package main
type test int //声明一个自定义类型
const (
black test = iota //注意black需要制定一个test类型
red
blue
)
func demo(c test) {} //函数指定传入test类型
func main() {
x := red
demo(x)
x := 1
demo(x) //报错,此处的x类型已经变成了int类型
}