回答

收藏

遍历 golang 地图

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

我有一张类型的地图: map[string]interface{}) a! D  X! ?- g# [1 Y0 x7 K: j
最后,我开始创造类似的东西(使用 goyaml 从 yml 文件反序列化后)
. W4 T7 B5 {' t. O  K6 v0 ?
    mymap = map[foo:map[first: 1] boo: map[second: 2]]
    6 w. z% W0 o6 z% h2 J" o( C
我怎样才能遍历这张地图?我尝试了以下方法:
9 P* i2 s! M$ e6 b' }. w  a
    for k,v := range mymap{...}& ?1 l9 }4 A8 S0 K! \$ f! z
但我收到了一个错误:
+ h0 c% P$ Z4 O: h6 G/ G
    cannot range over mymaptypechecking loop involving for loop
    * k' x2 p# f9 e8 g9 y
请帮忙。4 ]) [# y$ S+ s
                                                               
- z* n; r; B" y* y2 _8 D    解决方案:                                                                $ S# c& m) ~; d* b! `+ q; Y6 d
                                                                例如,! S5 s+ \' S. C9 d0 c5 k$ Y. q
    * f1 |. e. s: ?* C
  • 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]
    6 M/ F% `7 J. K' W$ X& i0 D
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则