golang 为什么没有枚举


本文摘自php中文网,作者(*-*)浩,侵删。

在c#、java等高级语言中,经常会用到枚举类型来表示状态等。

golang中并没有枚举类型,可以使用const来模拟枚举类型。 (推荐学习:go)

枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值。

1

2

3

4

5

6

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。

使用举例

1

2

3

func foo(p PolicyType) {

    fmt.Printf("enum value: %v\n", p)}func main() {

    foo(Policy_MAX)}

运行结果

1

2

$ go build && ./main

enum value: 1

以上就是golang 为什么没有枚举的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

go:实现秒级读取16gb文件

[系列] - 使用 go modules 包管理工具(一)

[系列] - go-gin-api 规划目录和参数验证(二)

golang基础-单元测试与mock

手撸golang go与微服务 saga模式之7

leetcode 搜索旋转排序数组 golang

gin 中实现 http basic auth

go - httpclient 常用操作

聊聊nacos-coredns-plugin的servermanager

golang 之 我被 for-range 循环进去了

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...