【问题标题】:Initialize a multilayer nested map that's inside a struct GO初始化结构 GO 内的多层嵌套映射
【发布时间】:2021-06-22 17:56:36
【问题描述】:

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

} 
    

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

【问题讨论】:

  • 嗨@Emma,你想初始化一个3层地图,还是使用一些通用代码初始化一个任意N层地图?此外,为您尝试解决的任务提供一些背景信息可能会帮助其他人回答您的问题,因为否则它看起来像 XY problem

标签: go struct initialization maps nested-map


【解决方案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}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多