我在我的应用中创建了类似以下的严格内容:
type Datatype int8 const ( user Datatype = iota address test ) var datatypes = [...]string{"User", "Address", "Test"} func (datatype Datatype) String() string { return datatypes[datatype] }
我希望能够通过命令行标志验证通过此枚举传递的值。
我以为我曾经看过像dtype == Datatype
这样的东西,但我显然非常错误。
如果这不可能,我可以将这些值放在数组中。但是,我觉得enum方法更优雅。
答案 0 :(得分:4)
从您的代码示例中看起来您正在尝试查看地图(而不是结构)是否包含特定键。
如果是,答案是here
双值赋值测试是否存在密钥:
i, ok := m["route"]
在此声明中,分配了第一个值(i) 存储在密钥" route"下的值。如果该密钥不存在,我 是值类型的零值(0)。第二个值(ok)是一个bool 如果密钥存在于地图中,则为true,否则为false。
要在不检索值的情况下测试密钥,请使用下划线 第一个值的位置:
_, ok := m["route"]