栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

golang常量和枚举

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

golang常量和枚举

golang使用const 变量名 变量类型 = 初始化值的形式声明并初始化常量,且常量必须在声明时初始化。和声明变量的区别在于var换成了const且不能省略,同时const a := 10这样混用const和:=的声明方式不被允许。

golang没有其他语言中的enum,而是采用多行const实现。类似如下:

//使用const来定义枚举类型
const (
	MON = 1
	TUE = 2
	WEN = 3
	TUR = 4
	FRI = 5
	SAT = 6
	SUN = 7
)

也可以使用iota关键字来简化,每一行相比与上一行iota的值都会默认加1

//在const()中添加一个关键字iota,每行的iota会加1,第一行默认为0
const (
	MON = iota
	TUE
	WEN
	TUR
	FRI
	SAT
	SUN
)

每一行的值都由iota的值以及该行前面最近的=表达式值决定。例如:

const (
	PLAY = iota*iota + 1//0*0+1
	WORK                //1*1+1
	SLEEP               //2*2+1
)

多行const加iota能够实现非单位1递增的复杂的枚举或者分段函数,例如:

//iota分段函数
//y = {
//	x * x /4, x>=0 && x<=4
//	x,        x>4
//}
const (
	y0 = iota * iota / 4
	y1
	y2
	y3
	y4
	y5 = iota
	y6
	y7
)

可见iota可读性稍差,但是能够实现更加复杂的枚举。多行const需要一行行手写,但更加清晰直白。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/907397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号