检查枚举中是否存在值

Roc*_*igh 3 go

我在我的应用程序中创建了如下严格:

类型 数据类型 int8

常量(
    用户数据类型 = iota
    地址
    测试
)

var datatypes = [...]string{"用户", "地址", "测试"}

func (数据类型 数据类型) String() string {
    返回数据类型[数据类型]
}

我希望能够针对此枚举验证通过命令行标志传递的值。

我以为我看到了类似dtype == Datatype被利用的情况,但显然我大错特错了。

如果这是不可能的,我可以将这些值放入数组中。然而,我觉得枚举方法更优雅。

Iam*_*NaN 5

从您的代码示例来看,您似乎正在尝试查看映射(而不是结构)是否包含特定的键。

如果是的话,答案就在这里

二值赋值测试键是否存在:

i, ok := m["route"] 
Run Code Online (Sandbox Code Playgroud)

在此语句中,第一个值 (i) 被分配给存储在键“route”下的值。如果该键不存在,则 i 是值类型的零值 (0)。第二个值 (ok) 是一个 bool,如果键存在于映射中则为 true,否则为 false。

要测试键而不检索值,请使用下划线代替第一个值:

_, ok := m["route"]
Run Code Online (Sandbox Code Playgroud)