前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go中枚举的实现

Go中枚举的实现

作者头像
码客说
发布2024-03-29 13:02:19
610
发布2024-03-29 13:02:19
举报
文章被收录于专栏:码客码客

前言

在 Go 中,虽然没有原生的枚举类型,但可以使用常量和自定义类型来实现枚举,并通过函数参数传递枚举值。

简单定义枚举

代码语言:javascript
复制
const (
	Console LogType = iota
	File
	ConsoleAndFile
)

iota 是一个被预先声明且只能在常量声明中使用的标识符。

iota 被用作常量生成器,它会在一个 const 常量组中自动生成连续的整数值,从0开始,每次自增1。

通常情况下,iota 用于简化枚举值的定义。

比如

代码语言:javascript
复制
const (
    A = iota // A的值为0
    B        // B的值为1
    C        // C的值为2
    D = 10   // D的值为10
    E        // E的值为10(iota并不会重置)
    F = iota // F的值为5(iota在每个const关键字出现时会重置为0)
    G        // G的值为6
)

定义类型

代码语言:javascript
复制
type LogType int

const (
	Console LogType = iota
	File
	ConsoleFile
)

var logType = Console

func SetLogType(mType LogType) {
	logType = mType
}

// 使用枚举类型作为函数参数
func PrintType(mType LogType) {
    switch mType {
    case Console:
        fmt.Println("Console")
    case File:
        fmt.Println("File")
    case ConsoleFile:
        fmt.Println("Console和File")
    default:
        fmt.Println("无效")
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 简单定义枚举
  • 定义类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档