当前位置: 首页 > 知识库问答 >
问题:

如何在go中使用枚举?[重复]

尉迟默
2023-03-14

Go语言中是否有枚举的简单实现?像下面这样的东西?

type status enum[string] {
    pending = "PENDING"
    active = "ACTIVE"
}

共有2个答案

莘昊
2023-03-14

像下面这样的东西?

现在还没有

请阅读以下内容:Go中表示枚举的惯用方法是什么?

陶炫明
2023-03-14
const (
    statusPending = "PENDING"
    statusActive  = "ACTIVE"
)

或者,在“终极视觉指南”中应用该示例进行枚举

// Declare a new type named status which will unify our enum values
// It has an underlying type of unsigned integer (uint).
type status int

// Declare typed constants each with type of status
const (
    pending status = iota
    active
)

// String returns the string value of the status
func (s status) String() string {
    strings := [...]string{"PENDING", "ACTIVE"}

    // prevent panicking in case of status is out-of-range
    if s < pending || s > active {
        return "Unknown"
    }

    return strings[s]
}
 类似资料:
  • 问题内容: 我有一个电影租借系统的现有数据库。每部电影都有一个评级属性。在SQL中,他们使用约束来限制此属性的允许值。 我认为使用Java枚举将约束映射到对象世界会很好。但是由于“ PG-13”和“ NC-17”中的特殊字符,不可能简单地获取允许的值。因此,我实现了以下枚举: 使用toString()方法,方向enum-> String可以正常工作,但是String-> enum不能正常工作。我得

  • 我有过 然后 我要集群。a只能是BlahFoo或MooFoo 我该如何执行?

  • 非常感谢您在广告方面的帮助。! 使用枚举类型的扫描仪时出错。然而,我不允许在这个任务中使用Buffer(InputStreamReader)。围绕它最好的工作是什么? 我收到以下错误: 代码: import java.util.Scanner; 公开课申请{ }

  • 问题内容: 我有一个通过ctypes访问的结构: 到目前为止,我有类似以下的Python代码: 但是我不确定该用什么枚举。我应该将其映射到a还是? 问题答案: 至少对于GCC来说,只是一个简单的数字类型。它可以是8位,16位,32位,64位或其他任何值(我已经用64位值对其进行了测试)以及或。我猜它不能超过,但是实际上你应该检查你的范围并选择类似。 这是一个例子。C程序: 和Python之一:

  • 问题内容: 我要做什么才能完成此任务?另外,可以说我将其更改为: 我该如何使它符合Decodable? EDit 这是我的完整代码(不起作用) 最终编辑 另外,它将如何处理这样的枚举? 问题答案: 这很简单,只需使用或隐式分配的原始值即可。 被编码到并到 要么 被编码到并到 这是一个简单的示例如何使用它:

  • 问题内容: 任务是使用java实现漂亮的策略设计模式: 但是当我指的是 无法对非静态字段someField进行静态引用。 有什么问题,有可能做得更好吗? 问题答案: 专门的不过是具有内部类语义的子类。如果在编译后查看字节码,您会注意到编译器仅插入用于读取私有字段的访问器方法,但是任何专用枚举都被编译为自己的类。您可以考虑将其实现为: 如您所见,发生相同的编译器错误。实际上,您的问题与s 不相关,而