Цикл по многомерным картам в Go
Карту карт обходят двумя циклами. Внешний дает очередную внутреннюю карту, внутренний - ее пары. Числа из пар складывают, начиная с нуля. Порядок пар не обещан, сумма от него не зависит:
data := map[string]map[string]int{
"a": {"x": 1, "y": 2},
"b": {"x": 3, "y": 4},
}
sum := 0
for _, inner := range data {
for _, val := range inner {
fmt.Println(val)
sum += val
}
}
fmt.Println(sum) // выведет 10
Дана карта карт:
data := map[string]map[string]int{
"a": {"x": 10, "y": 20},
"b": {"x": 30, "y": 40},
}
Найдите сумму всех чисел и выведите ее.
Дана карта из трех уровней:
data := map[string]map[string]map[string]int{
"g": {
"u": {"age": 20, "year": 2000},
},
}
Найдите сумму всех чисел и выведите ее.