2015-09-26 3 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

Initilize вложенная карта, как это:

temp := make(map[string]string,1) 
temp ["name"]="Kube" 
ss.nestedMap [2] = temp 
fmt.Println(ss) 
Смежные вопросы