1

我是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" 

} 
    

显然,如果没有初始化地图,这会引发恐慌!分配给地图中的零条目。我需要一种方法来初始化它所使用的函数中的嵌套映射。或者在另一个易于调用的函数中。

4

1 回答 1

1

您可以使用文字来初始化地图:

   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}
于 2021-03-25T21:36:53.093 回答