Heim > Backend-Entwicklung > Golang > GO, Kartenschlüssel wurden alle aktualisiert

GO, Kartenschlüssel wurden alle aktualisiert

WBOY
Freigeben: 2024-02-09 08:36:15
nach vorne
1213 Leute haben es durchsucht

GO, Kartenschlüssel wurden alle aktualisiert

Die neuesten Nachrichten von PHP-Editor Yuzai: Alle GO-Kartenschlüssel wurden aktualisiert! GO Map Key ist eine leistungsstarke Navigationsanwendung, die Benutzern genaue und praktische Kartennavigationsdienste bietet. Nach dem letzten Update wurden dem GO-Kartenschlüssel weitere Funktionen und Optimierungen hinzugefügt, sodass Benutzer einfacher auf die benötigten Navigationsinformationen zugreifen können. Egal, ob Sie unterwegs sind, reisen oder nach Dienstleistungen in der Nähe suchen, GO Map Key bietet Ihnen umfassende Hilfe. Unabhängig davon, ob Sie mit dem Auto unterwegs sind oder zu Fuß unterwegs sind, kann die GO-Kartentaste die optimale Route planen und Ihnen in Echtzeit Navigationsanweisungen geben. Egal wo Sie sind, der GO-Kartenschlüssel ist Ihr richtiger Helfer auf Reisen!

Frageninhalt

Stimmt etwas mit meiner Vorgehensweise nicht? Ich verstehe nicht, warum alle Kartenschlüssel aktualisiert werden, es sollte nur der „Ether“-Schlüssel sein.

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)
Nach dem Login kopieren

Geh auf den Spielplatz

Die Ausgabe wird sein map[桥:map[rx:1 tx:1] ether:map[rx:1 tx:1] wg:map[rx:1 tx:1] wlan:map[rx:1 tx:1]]

Aber ich freue mich darauf map[桥:map[rx:0 tx:0] ether:map[rx:1 tx:1] wg:map[rx:0 tx:0] wlan:map[rx:0 tx:0]]

Lösung

Das liegt daran, dass Zuordnungen eigentlich wie Zeiger sind Alle Schlüssel „wlan“, „ether“, „bridge“ und „wg“ zeigen auf denselben Wert (rxTx). Es gibt viele Möglichkeiten, das zu erreichen, was Sie wollen, aber hier ist eine schnelle Lösung:

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)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonGO, Kartenschlüssel wurden alle aktualisiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage