概述
将变量的值一一列举出来,变量只限于列举出来的值的范围内取值
Go语言中没有枚举这种数据类型的,但是可以使用const配合iota模式来实现
一、普通枚举
const (
cpp = 0
java = 1
python = 2
golang = 3
)
二、自增枚举
-
iota只能在常量的表达式中使用
fmt.Println(iota) //undefined: iota
-
它默认开始值是0,const中每增加一行加1
const ( a = iota //0 c //1 d //2 )
-
每次 const 出现时,都会让 iota 初始化为0
const d = iota // a=0 const ( e = iota //b=0 f //c=1 )
-
如果中断iota,必须显式恢复!!!
const ( Low = iota //0 Medium //1