猿问

如何在 GO 中访问地图值?

如何访问以下代码的地图值?代码片段是自动生成的,所以我无法修改它。我已经尝试过,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


泛舟湖上清波郎朗
浏览 132回答 1
1回答

白板的微信

Go 对类型非常严格。您的地图都具有类型为 int32 的键,并且您正尝试使用类型为 OpType 的值访问它们。OpType 是 int32 并不重要。您可以将 OpType 转换为 int32 并使其工作func main() {  fmt.Println(OpType_name[int32(OpType_UNKNOWN)])}@nos 的评论是一个很好的方法,在这种情况下它可能是您想要的。https://play.golang.org/p/dum5GiB3zS
随时随地看视频慕课网APP

相关分类

Go
我要回答