1、golang中是没有枚举的
在golang极简的哲学思想中,没有内置枚举类型
这里我们通过map+iota去实现一个枚举类型
1.1、需求
枚举值如下:
key | value |
---|---|
1 | 发电类 |
2 | 储能类 |
13 | 负荷类 |
1.2、自定义枚举类
// 定义一个类型
type TYPEID int
// 定义key(数值类型)
const (
DEVICE_TYPE_ID1 TYPEID = iota + 1
DEVICE_TYPE_ID2
DEVICE_TYPE_ID3
)
// 定义枚举值
var ENUM_DEVICE_TYPE_ENUM = map[TYPEID]string{
DEVICE_TYPE_ID1: "发电类",
DEVICE_TYPE_ID2: "储能类",
DEVICE_TYPE_ID3: "负荷类",
}
1.3、测试
func main() {
for i := 1; i < 4; i++ {
fmt.Println(ENUM_DEVICE_TYPE_ENUM[TYPEID(i)])
}
fmt.Println("=========")
fmt.Println(ENUM_DEVICE_TYPE_ENUM[DEVICE_TYPE_ID2])
}
打印如下:文章来源:https://www.toymoban.com/news/detail-613045.html
发电类
储能类
负荷类
=========
储能类文章来源地址https://www.toymoban.com/news/detail-613045.html
1.4、完整代码
package main
import "fmt"
type TYPEID int
const (
DEVICE_TYPE_ID1 TYPEID = iota + 1
DEVICE_TYPE_ID2
DEVICE_TYPE_ID3
)
var ENUM_DEVICE_TYPE_ENUM = map[TYPEID]string{
DEVICE_TYPE_ID1: "发电类",
DEVICE_TYPE_ID2: "储能类",
DEVICE_TYPE_ID3: "负荷类",
}
func main() {
for i := 1; i < 4; i++ {
fmt.Println(ENUM_DEVICE_TYPE_ENUM[TYPEID(i)])
}
fmt.Println("=========")
fmt.Println(ENUM_DEVICE_TYPE_ENUM[DEVICE_TYPE_ID2])
}
到了这里,关于【golang】每日chatGPT:golang中实现ENUM枚举类型 | go enum的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!