如何在Go中的结构内初始化嵌套映射?

时间:2015-09-26 03:41:17

标签: go

如果我在结构中有这样的嵌套地图变量:

type someStruct struct {
    nestedMap map[int]map[string]string
}

var ss = someStruct {
    nestedMap: make(map[int]map[string]string),
}

这不起作用并且发生运行时错误。

如何初始化它?

2 个答案:

答案 0 :(得分:4)

你也必须制作儿童地图。

func (s *someStruct) Set(i int, k, v string) {
    child, ok := s.nestedMap[i]
    if !ok {
        child = map[string]string{}
        s.nestedMap[i] = child
    }
    child[k] = v
}

playground

答案 1 :(得分:1)

像这样初始化嵌套地图:

temp := make(map[string]string,1)
temp ["name"]="Kube"
ss.nestedMap [2] = temp
fmt.Println(ss)