Enum作为go中的变量属性

时间:2016-08-26 17:31:45

标签: go enums

我们说我有这样的事情:

const (
    FOO int = iota
    BAR
    BAZ
)

我可以通过FOOBAR等访问变量。但是在一个命名空间中存储大量常量并不是很好,所以我试图在结构中隐藏这个枚举或类似的东西,这样我就可以通过在同一命名空间中键入actions.FOO来获得价值。我尝试了很多方法,但没有找到类似的东西。我想提一下,在这种情况下,最简单的解决方法将是匿名结构,但我想继续使用iota进行自动索引。

1 个答案:

答案 0 :(得分:0)

在不创建我找到的单独包的情况下,在属性后面分配某种可枚举的唯一方法是使用匿名结构。

type someType int

var ConstantsList = struct {
   FOO, BAR, BAZ someType
}{1, 2, 3}

使用它有一些缺点,它不是一成不变的,也没有自动增量。