回答

收藏

遍历 golang 地图

技术问答 技术问答 287 人阅读 | 0 人回复 | 2023-09-11

我有一张类型的地图: map[string]interface{}
# |" X" y0 I3 z) a2 u最后,我开始创造类似的东西(使用 goyaml 从 yml 文件反序列化后)
& P% I5 @; N# k9 A; W4 U
    mymap = map[foo:map[first: 1] boo: map[second: 2]]
    7 o- v' ^2 j; _% c( Z
我怎样才能遍历这张地图?我尝试了以下方法:
3 }+ O! F3 d1 i3 e, e
    for k,v := range mymap{...}4 z5 d7 j4 \& R; R8 B2 R* m
但我收到了一个错误:. G0 c* n" f0 f" }  D7 v3 _4 s5 s4 L
    cannot range over mymaptypechecking loop involving for loop
    # o. W# T6 N4 W- \6 l
请帮忙。
# y' m! ?1 i) C: e. I3 L2 d                                                                : n- f/ D4 P$ }0 @" D
    解决方案:                                                               
# V  M- m# _$ `$ a: g( ]                                                                例如,
1 A! f! i# ^1 B$ _; F. [, F& \  G

    # y1 `' d2 ]  p. n
  • package mainimport "fmt"func main()      type Map1 map[string]interface{}    type Map2 map[string]int    m := Map1{"foo": Map2{"first": 1},"boo": Map2{"second":  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)  code]输出:[code]m: map[boo:map[second:2] foo:map[first:1]]k: boo v: map[second:2]k: foo v: map[first:1]
    * E; j4 m$ w* G/ m) `9 T& }5 z
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则