Maison > développement back-end > Golang > le corps du texte

GO, les clés de la carte ont toutes été mises à jour

WBOY
Libérer: 2024-02-09 08:36:15
avant
1168 Les gens l'ont consulté

GO, les clés de la carte ont toutes été mises à jour

Dernières nouvelles de l'éditeur php Yuzai : Toutes les clés de la carte GO ont été mises à jour ! GO Map Key est une application de navigation puissante qui fournit aux utilisateurs des services de navigation cartographique précis et pratiques. Après la dernière mise à jour, la clé de carte GO a ajouté plus de fonctions et d'optimisations, permettant aux utilisateurs d'obtenir plus facilement les informations de navigation dont ils ont besoin. Que vous soyez en voyage, en voyage ou à la recherche de services à proximité, GO Map Key peut vous fournir une aide complète. Que vous voyagiez en voiture ou à pied, la clé de carte GO peut planifier l'itinéraire optimal et vous fournir des conseils de navigation en temps réel. Où que vous soyez, la clé de carte GO est votre assistant idéal lorsque vous voyagez !

Contenu de la question

Y a-t-il quelque chose qui ne va pas dans mon approche ? Je ne comprends pas pourquoi toutes les clés de carte sont mises à jour, ce devrait être juste la clé "éther".

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)
Copier après la connexion

Aller au terrain de jeux

Le résultat sera map[桥:map[rx:1 tx:1] ether:map[rx:1 tx:1] wg:map[rx:1 tx:1] wlan:map[rx:1 tx:1]]

Mais j'ai hâte d'y être map[桥:map[rx:0 tx:0] ether:map[rx:1 tx:1] wg:map[rx:0 tx:0] wlan:map[rx:0 tx:0]]

Solution

C'est parce que les mappages sont en fait comme des pointeurs Toutes les touches "wlan", "ether", bridge" et "wg" pointent vers la même valeur (rxTx). Il existe de nombreuses façons d'obtenir ce que vous voulez, mais voici une solution rapide :

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)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!