Heim > Backend-Entwicklung > Golang > Wie ändert sich der Wert in der Golang Map-Schnittstelle?

Wie ändert sich der Wert in der Golang Map-Schnittstelle?

WBOY
Freigeben: 2024-02-09 21:00:19
nach vorne
950 Leute haben es durchsucht

Golang Map 接口中的值如何变化

Wie ändern sich die Werte in der Golang Map-Oberfläche? Diese Frage verwirrt viele Golang-Entwickler. In der Go-Sprache ist Map eine sehr wichtige Datenstruktur, die Daten in Form von Schlüssel-Wert-Paaren speichert. Bei der Verwendung von Karten müssen wir jedoch auf einige Details achten, insbesondere beim Umgang mit Wertänderungen. Schauen wir uns also genauer an, wie sich Werte in der Kartenoberfläche von Golang ändern.

Frageninhalt

Dies ist die Codebasis - https://go.dev/play/p/bedouz9qhag

Ausgabe -

map[something:map[acm:34.12 age:12 dune:dune]]
Nach dem Login kopieren

Welche Auswirkung hat die Änderung des Werts der t-Variablen auf x?

package main

import "fmt"

    func main() {
        x: = make(map[string] interface {}, 10)
        x["something"] = map[string] interface {} {
            "dune": "dune", "age": 12
        }
    
        t: = x["something"].(map[string] interface {})
        t["ACM"] = 34.12
       

 fmt.Println(x)
}
Nach dem Login kopieren

Lösung

Der zugeordnete Typ ist ein Referenztyp, wie Zeiger oder Slice,

Also diese Zeile

t := x["something"].(map[string]interface{}) t["ACM"] = 34.12 fmt.Println(x) }
Nach dem Login kopieren

ist nur eine flache Kopie für Sie in x 变量中创建的现有地图创建 alias, sodass sie auf dieselbe Speicheradresse verweisen, an der sich die von Ihnen erstellte Originalkarte befand.

Siehe Referenz -https://www.php.cn/link/0bf31d0d702fcac8c8e07912f3347c31

Das obige ist der detaillierte Inhalt vonWie ändert sich der Wert in der Golang Map-Schnittstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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