迭代golang地图

我有一个types的地图: map[string]interface{}

最后,我开始创build类似(使用goyaml从yml文件反序列化之后)

 mymap = map[foo:map[first: 1] boo: map[second: 2]] 

我怎样才能遍历这个地图? 我尝试了以下内容:

 for k, v := range mymap{ ... } 

但是我得到一个错误:

 cannot range over mymap typechecking loop involving for loop 

请帮忙。

例如,

 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] 

你可以做一行:

 mymap := map[string]interface{}{"foo": map[string]interface{}{"first": 1}, "boo": map[string]interface{}{"second": 2}} for k, v := range mymap { fmt.Println("k:", k, "v:", v) } 

输出是:

 k: foo v: map[first:1] k: boo v: map[second:2]