Java 的枚举具有有用的方法“valueOf(string)”,它通过名称返回 const 枚举成员。前任。enum ROLE { FIRST("First role"), SECOND("Second role") private final String label; private ROLE(label String) { this.label = label; } public String getLabel() { return label; }}// in other place of code we can do:ROLE.valueOf("FIRST").getLabel(); // get's "First role"例如,在 html 表单的选择提交到服务器之后,此行为很有用。我们有字符串表示需要转换成真正的枚举。有人可以告诉,golang 可以做同样的行为吗?欢迎使用代码示例。
1 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
不,Go 没有枚举。
所以你需要使用单独的地图:
const (
First = iota
Second
)
var byname = map[string]int {
"First": First,
"Second": Second,
}
如果您需要大量此类常量,请考虑使用代码生成。
但实际上,我没有看到您想要的功能的真正共鸣:常量几乎是自描述的,因为在源代码中它们的名称已经是文本。 因此,“在运行时获取与文本字符串相关联的数字”的唯一合理用例是解析一些数据/输入,这就是使用查找图的情况——一旦你像我一样重新表述问题,这很明显.
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报
0/150
提交
取消