当前位置:  开发笔记 > 编程语言 > 正文

如何在GO中访问地图值?

如何解决《如何在GO中访问地图值?》经验,为你挑选了1个好方法。

如何访问以下代码的映射值?代码段是自动生成的,因此我无法对其进行修改.我试过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



1> Andreas Wede..:

Go对类型非常严格.你的地图都有typ int32的键,你试图使用OpType类型的值访问它们.OpType是int32并不重要.

您可以将OpType转换为int32并使其工作

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

来自@nos的评论是一个很好的方法,它可能就是你想要的.

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


或者,使地图使用OpType而不是int32,`map [OpType] string {`
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有