2015-09-26 138 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)