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

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

WBOY
WBOYnach vorne
2024-02-09 21:00:19914Durchsuche

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

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)
}

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) }

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen