golang 为什么没有枚举
16lz
2021-01-22
在c#、java等高级语言中,经常会用到枚举类型来表示状态等。
在golang中并没有枚举类型,可以使用const来模拟枚举类型。 (推荐学习:go)
枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值。
type PolicyType int32const ( Policy_MIN PolicyType = 0 Policy_MAX PolicyType = 1 Policy_MID PolicyType = 2 Policy_AVG PolicyType = 3)}
这里定义了一个新的类型PolicyType,并且定义了4个常量(Policy_MIN, Policy_MAX, Policy_MID, Policy_AVG),类型是PolicyType。
使用举例
func foo(p PolicyType) { fmt.Printf("enum value: %v\n", p)}func main() { foo(Policy_MAX)}
运行结果
$ go build && ./mainenum value: 1
更多相关文章
- golang怎么把字符串转成Int类型
- golang判断错误类型的方法
- golang怎么自定义错误
- Golang如何定义error
- golang如何定义一个二维数组
- 详解 Go 中的不可变类型
- go语言中自定义包的方法
- 用go实现路由的链式定义
- 总结 Go 的数据类型