如果去找一些开源项目,可能会发现一些实现了这种 enum 的包,你只要通过iota定义枚举类型,从字符串和枚举间转化的代码可通过命令直接生成。 robpike 开发过一个工具名为stringer,可直接基于类似如上HttpMethod定义生成String()方法,不过它不是完整的 enum 支持。 //go:generate stringe
fromenumimportEnumclassSex(Enum):man=1woman=2unknown=3 然后在使用的时候就可以直接Sex.main直接调用。 Go 的实现 在Go 语言中,我们如果要实现枚举,则需要使用常量计数器 iota结合 const 来实现。 iota 是 go 语言的常量计数器,只能在 const 里面使用。 比如: 代码语言:javascript 代码运行次数:0 运行 AI代...
此外,enum.New还支持递归, 也就是说你还可以把枚举定义成 package main import ( "fmt" "github.com/tnnmigga/enum" ) var HttpStatus = enum.New[struct { Code struct { OK int `enum:"200"` // 200 NotFound int `enum:"404"` // 404 } Txt struct { OK string `enum:"ok"` // ok Not...
虽然Go 语言没有内置的枚举类型,但可以使用第三方库来获得更强大的枚举支持。例如,go-enum和enumer等库提供了更多高级功能,如枚举值的迭代、比较等。 import"github.com/your-library"// 使用 go-enum 库定义枚举typeFruitintfunc(f Fruit)Enum() *your_library.Enum {returnyour_library.NewEnum(int(f), &y...
在Golang中,枚举(enum)的作用是为一组相关的常量定义一个类型,并限制该类型的值只能是这些常量中的一个。通过使用枚举,可以提高代码的可读性和可维护性。在Golang中,没有内置的枚举类型,...
golang中enum的用法是什么golang 小亿 99 2024-02-05 15:54:39 栏目: 编程语言 在Go语言中没有内置的枚举类型,但是可以使用常量组来模拟枚举。常量组是一组相关的常量值,它们的值可以是不同的,但是类型必须一致。 下面是一个使用常量组模拟枚举的例子: package main import "fmt" type Color int const (...
在Go 中,没有枚举数据类型。我们使用预定义的标识符iota,并且enums不是严格类型的。 在Go 中使用iota表示enums iota是一个常量标识符,可以简化自动递增数字的声明。它表示一个从零开始的整数常量。 iota关键字表示数字常量0, 1, 2,...。源代码中出现的术语const重置为0并随着每个const规范而增加。
在很多编程语言中,枚举类型(Enum)是一种常见的数据类型,它将一组有限的取值定义为一个类型。在使用枚举类型时,我们可以直接使用预定义的枚举值,而不必担心输入错误的值。但是,在 Go 语言中,没有内置的枚举类型。 那么,在 Go 语言中,应该如何处理这种场景呢? 方案
go get github.com/lvyahui8/goenum import "github.com/lvyahui8/goenum" // Declaring an enumeration type type State struct { goenum.Enum } // Defines a set of enumeration instances var ( Created = goenum.NewEnum[State]("Created") Running = goenum.NewEnum[State]("Running") Success =...
go-enum:它可以从简单的定义格式生成 Go 语言的枚举代码。(点击go-enum GitHub[1]以获取更多信息)。stringer:它为在 Go 源代码中定义的枚举自动生成字符串方法。(点击stringer[2]工具以获取更多详情)。 上述三种方式该如何选择? 如果希望实现简单,并且枚举集较小且不需要额外特性,使用 Iota 常量即可。