为了账号安全,请及时绑定邮箱和手机立即绑定

Golang for 地图某些部分的循环

Golang for 地图某些部分的循环

Go
达令说 2021-09-27 20:49:05
试图为地图的每个部分创建一个 for 循环。map[asn:AS10 time:1.428790768e+09 ipv4s:[      68.114.75.0/24       216.215.56.0/22       216.215.60.0/22] ipv6s:[      2607:f3f8::/32]]上面是地图,我想尝试为中的每个值创建一个 for 循环ipv4s。我已经尝试过,但我显然没有正确地做到这一点,因为它只是基于我的 php 知识。:for json_map["ipv4s"]{   //whatever       }PHP版本,如果有人需要一个例子而不是我试图解释:foreach($obj->ipv4s as $value) {     echo $value; // return an ip}更新package mainimport (    "fmt"    "net/http"    "os"    "encoding/json"    )func main() {    response, err := http.Get("https://www.enjen.net/asn-blocklist/index.php?asn=" + os.Args[1] + "&type=json_split&api=1")    if err != nil {        fmt.Printf("%s", err)        os.Exit(1)    } else {        defer response.Body.Close()        dec := json.NewDecoder(response.Body)        if dec == nil {            panic("Failed to start decoding JSON data")        }        json_map := make(map[string]interface{})        err = dec.Decode(&json_map)        if err != nil {            panic(err)        }        fmt.Printf("%v\n", json_map)        for i := range json_map {            for _, ip := range json_map[i]["ipv4s"] {                fmt.Printf(ip)            }        }    }}
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

一旦您完成了Go教程,Effective Go就是一个很好的来源。那里还描述了如何迭代切片:


for key, value := range json_map {

    // ...

}

或者,如果您不需要密钥:


for _, value := range json_map {

    // ...

}

如果它是地图切片,您可能需要嵌套两个循环:


for i := range json_map {

    for _, ip := range json_map[i]["ipv4s"] {

      // ...

    }

}


查看完整回答
反对 回复 2021-09-27
  • 1 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信