如何在GO中访问地图值?

How do I access the map value for the following code? The code snippet is auto generated, so I can't modify it. I have tried OpType_name[OpType_UNKNOWN] but I am getting error from the golang compiler.

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,
}

Error: cannot use int(api.OpType_UNKNOWN) (type int) as type int32 in map index

Go is very strict on types. Your maps all have keys with typ int32 and you are trying to access them using a value of type OpType. It doesn't matter that OpType is an int32.

You can cast your OpType to int32 and make it work

func main() {
  fmt.Println(OpType_name[int32(OpType_UNKNOWN)])
}

The comment from @nos is a good way to go, it's probably what you want in this case.

https://play.golang.org/p/dum5GiB3zS