2015-09-26 112 views
3

如果我有这样的一个结构里面嵌套地图变量:如何初始化Go中的结构中的嵌套映射?

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

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

这不工作,不运行时错误。

如何初始化它?

回答

3

您还必须制作子地图。

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

用来初始化嵌套图象这样:

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