我该如何访问以下代码的地图值?代码片段是自动生成的,所以我无法修改它。我尝试过
错误:
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,
}
错误:
无法将int(api.OpType_UNKNOWN)(类型为int)用作map索引中的int32类型
map[OpType]string{
- nosOpType
不是int32
:它只与int32
的类型内部表示共享值。关键点在于type B A
并不会使B
“继承”A
的任何方法。这对于没有方法的int32
并不重要,但在处理自定义类型时很重要。 - kostixint32
到OpType
的类型转换(内部表示相同),但不允许将OpType
类型的值分配给int32
类型的接收器的原因:如果允许这样做,接收器可能想调用其类型定义的方法,但传递给它的值在其(不同的)类型中没有该方法。 - kostix