首页 >后端开发 >Golang >GO,地图键已全部更新

GO,地图键已全部更新

WBOY
WBOY转载
2024-02-09 08:36:151225浏览

GO,地图键已全部更新

php小编鱼仔最新消息:GO地图键已全部更新!GO地图键是一款功能强大的导航应用,为用户提供准确、便捷的地图导航服务。经过最新一次更新,GO地图键增加了更多的功能和优化,让用户能够更轻松地获取到所需的导航信息。无论是出行、旅游还是寻找附近的服务,GO地图键都能为您提供全方位的帮助。不论您是驾车出行还是步行,GO地图键都能为您规划最优的路线和提供实时导航指引。无论您身处何地,GO地图键都是您出行的得力助手!

问题内容

我的做法有问题吗?我不明白为什么所有地图键都被更新,它应该只是“以太”键。

data := []byte(`
    [{".id":"*1","actual-mtu":"1500","default-name":"ether1","disabled":"false","l2mtu":"1514","type":"ether"},{".id":"*2","actual-mtu":"1500","default-name":"bridge2","disabled":"false","l2mtu":"1514","type":"bridge"}] 
`)

var dst []map[string]string
json.Unmarshal(data, &dst)

rxTx := map[string]int{"rx": 0, "tx": 0}
typeMap := map[string]map[string]int{"wlan": rxTx, "ether": rxTx, "bridge": rxTx, "wg": rxTx}

fmt.Println(typeMap)

for _, v := range dst {

    if v["type"] == "ether" {

        typeMap["ether"]["rx"] += 1

        typeMap["ether"]["tx"] += 1
    }
}

fmt.Println(typeMap)

去游乐场

输出将是 map[桥:map[rx:1 tx:1] ether:map[rx:1 tx:1] wg:map[rx:1 tx:1] wlan:map[rx:1 tx:1]] p>

但我期待着 map[桥:map[rx:0 tx:0] ether:map[rx:1 tx:1] wg:map[rx:0 tx:0] wlan:map[rx:0 tx:0]] p>

解决方法

那是因为映射实际上就像指针 所有“wlan”、“ether”、bridge”和“wg”键都指向相同的值(rxTx)。 有很多方法可以实现您想要的目标,但这里有一个快速解决方案:

data := []byte(`
    [{".id":"*1","actual-mtu":"1500","default-name":"ether1","disabled":"false","l2mtu":"1514","type":"ether"},{".id":"*2","actual-mtu":"1500","default-name":"bridge2","disabled":"false","l2mtu":"1514","type":"bridge"}] 
`)

    var dst []map[string]string
    json.Unmarshal(data, &dst)

    rxTxWlan := map[string]int{"rx": 0, "tx": 0}
    rxTxEther := map[string]int{"rx": 0, "tx": 0}
    rxTxBridge := map[string]int{"rx": 0, "tx": 0}
    rxTxWg := map[string]int{"rx": 0, "tx": 0}

    typeMap := map[string]map[string]int{"wlan": rxTxWlan, "ether": rxTxEther, "bridge": rxTxBridge, "wg": rxTxWg}

    fmt.Println(typeMap)

    for _, v := range dst {

        if v["type"] == "ether" {
            typeMap["ether"]["rx"] += 1

            typeMap["ether"]["tx"] += 1
        }
    }

    fmt.Println(typeMap)

以上是GO,地图键已全部更新的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除