Rumah  >  Artikel  >  pembangunan bahagian belakang  >  GO, kunci peta semuanya telah dikemas kini

GO, kunci peta semuanya telah dikemas kini

WBOY
WBOYke hadapan
2024-02-09 08:36:151148semak imbas

GO, kunci peta semuanya telah dikemas kini

Berita terbaharu editor php Yuzai: Semua kunci peta GO telah dikemas kini! GO Map Key ialah aplikasi navigasi berkuasa yang menyediakan pengguna dengan perkhidmatan navigasi peta yang tepat dan mudah. Selepas kemas kini terkini, kunci peta GO telah menambah lebih banyak fungsi dan pengoptimuman, membolehkan pengguna mendapatkan maklumat navigasi yang mereka perlukan dengan lebih mudah. Sama ada anda melancong, melancong atau mencari perkhidmatan berdekatan, GO Map Key boleh memberi anda bantuan menyeluruh. Sama ada anda mengembara dengan kereta atau berjalan kaki, kekunci peta GO boleh merancang laluan optimum dan memberikan panduan navigasi masa nyata untuk anda. Tidak kira di mana anda berada, kunci peta GO ialah pembantu yang betul anda semasa dalam perjalanan!

Kandungan soalan

Ada yang salah dengan pendekatan saya? Saya tidak faham mengapa semua kunci peta dikemas kini, ia sepatutnya menjadi kunci "eter".

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)

Pergi ke taman permainan

Keluarannya ialah 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>

Tetapi saya menantikannya 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>

Penyelesaian

Itu kerana pemetaan sebenarnya seperti penunjuk Semua kekunci "wlan", "ether", bridge" dan "wg" menghala ke nilai yang sama (rxTx). Terdapat banyak cara untuk mencapai apa yang anda inginkan, tetapi inilah penyelesaian pantas:

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)

Atas ialah kandungan terperinci GO, kunci peta semuanya telah dikemas kini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam