问题描述
我是 golang 的新手,对一般的编码有点陌生,我一直在解决这个问题。我找到了多个关于如何使用两层地图执行此操作的示例,但没有一个可以很好地扩展到三层。我有一些代码看起来像这样,嵌套映射作为结构的一部分。
type someStruct struct {
// some other stuff
myMap map[int]map[int]map[int]string
}
func (s someStruct) aFunction() {
//need logic to initialize the map
s.myMap[1][2][3] = "string"
}
显然,如果没有初始化地图,这会引发恐慌!分配给地图中的 nil 条目。我需要一种方法来在使用它的 func 中初始化嵌套映射。或者在另一个易于调用的 func 中。
解决方法
您可以使用文字来初始化地图:
s.myMap=map[int]map[int]map[int]string{1:map[int]map[int]string{2:map[int]string{3:"string"}}}
这是语法的扩展:
mapValue=map[type1]type2{type1Value:type2Value}