Пройдясь по карте golang
у меня есть карта типа: map[string]interface{}
и, наконец, я получаю, чтобы создать что-то вроде (после десериализации из файла yml с помощью goyaml)
mymap = map[foo:map[first: 1] boo: map[second: 2]]
как я могу перебирать эту карту? Я попробовал следующее:
for k, v := range mymap{
...
}
но я получаю сообщение об ошибке:
cannot range over mymap
typechecking loop involving for loop
пожалуйста, помогите.
2 ответа:
например,
package main import "fmt" func main() { type Map1 map[string]interface{} type Map2 map[string]int m := Map1{"foo": Map2{"first": 1}, "boo": Map2{"second": 2}} //m = map[foo:map[first: 1] boo: map[second: 2]] fmt.Println("m:", m) for k, v := range m { fmt.Println("k:", k, "v:", v) } }
выход:
m: map[boo:map[second:2] foo:map[first:1]] k: boo v: map[second:2] k: foo v: map[first:1]