如何访问以下代码的映射值?代码段是自动生成的,因此我无法对其进行修改.我试过OpType_name[OpType_UNKNOWN]
但是我从golang编译器得到错误.
type OpType int32 const ( OpType_UNKNOWN OpType = 0 OpType_CREATE OpType = 1 OpType_DELETE OpType = 3 ) var OpType_name = map[int32]string{ 0: "UNKNOWN", 1: "CREATE", 2: "DELETE", } var OpType_value = map[string]int32{ "UNKNOWN": 0, "CREATE": 1, "DELETE": 2, }
错误:
cannot use int(api.OpType_UNKNOWN) (type int) as type int32 in map index
Go对类型非常严格.你的地图都有typ int32的键,你试图使用OpType类型的值访问它们.OpType是int32并不重要.
您可以将OpType转换为int32并使其工作
func main() { fmt.Println(OpType_name[int32(OpType_UNKNOWN)]) }
来自@nos的评论是一个很好的方法,它可能就是你想要的.
https://play.golang.org/p/dum5GiB3zS