首頁  >  文章  >  後端開發  >  GO,地圖鍵已全部更新

GO,地圖鍵已全部更新

WBOY
WBOY轉載
2024-02-09 08:36:151195瀏覽

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刪除