Comment les valeurs dans l'interface de Golang Map changent-elles ? C'est une question qui déroute de nombreux développeurs Golang. En langage Go, la carte est une structure de données très importante, qui stocke les données sous forme de paires clé-valeur. Cependant, lors de l'utilisation de map, nous devons prêter attention à certains détails, notamment lorsqu'il s'agit de changements de valeur. Examinons donc de plus près comment les valeurs changent dans l'interface Map de Golang.
Voici la base de code - https://go.dev/play/p/bedouz9qhag
Sortie -
map[something:map[acm:34.12 age:12 dune:dune]]
Quel effet la modification de la valeur de la variable t a-t-elle sur 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) }
Le type mappé est un type de référence, comme un pointeur ou une tranche,
Donc cette ligne
t := x["something"].(map[string]interface{}) t["ACM"] = 34.12 fmt.Println(x) }
n'est qu'une copie superficielle pour vous dans x
变量中创建的现有地图创建 alias
afin qu'ils pointent vers la même adresse mémoire où se trouvait la carte originale que vous avez créée.
Voir référence -https://www.php.cn/link/0bf31d0d702fcac8c8e07912f3347c31
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!