Maison >développement back-end >Golang >Comment la valeur dans l'interface de Golang Map change-t-elle ?

Comment la valeur dans l'interface de Golang Map change-t-elle ?

WBOY
WBOYavant
2024-02-09 21:00:19957parcourir

Golang Map 接口中的值如何变化

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.

Contenu de la question

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

Solution

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer