回答

收藏

遍历 golang 地图

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

我有一张类型的地图: map[string]interface{}$ O& s$ i6 t: u2 x3 ~
最后,我开始创造类似的东西(使用 goyaml 从 yml 文件反序列化后)
7 ^0 g. Y* d8 [1 M; B/ A0 w  {
    mymap = map[foo:map[first: 1] boo: map[second: 2]]
    * K2 q) o* h7 Q! F5 g
我怎样才能遍历这张地图?我尝试了以下方法:
2 @' ]4 q, r2 M% k3 z
    for k,v := range mymap{...}. T- a! B' A& i6 i' `
但我收到了一个错误:
" U& p; P! v- X
    cannot range over mymaptypechecking loop involving for loop" F. ?& ], @6 z, V+ x3 m
请帮忙。
% p; V) P6 i2 P8 I& m                                                                7 U" t+ v* ?$ H4 k
    解决方案:                                                               
+ Y' m7 S0 t' h1 x! b+ s9 Z. P* J                                                                例如,. j+ G& W+ ^8 V: U/ F& U

    + n* t0 f3 `# |# T
  • 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]
    5 w# U( j5 r: `$ ]. C- M
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则