GO, kunci peta semuanya telah dikemas kini

WBOY
Lepaskan: 2024-02-09 08:36:15
ke hadapan
1167 orang telah melayarinya

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)
Salin selepas log masuk

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]]

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]]

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)
Salin selepas log masuk

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

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!