Junior — Middle
Peut-on obtenir l'adresse d'un élément spécifique stocké dans une table associative (Map) ?
sobes.tech IA
Réponse de l'IA
En Go, il n'est pas possible d'obtenir directement l'adresse d'un élément spécifique stocké dans un map. Cela est dû au fait que les éléments du map peuvent se déplacer en mémoire lors de modifications, et le compilateur ne permet pas de prendre l'adresse de la valeur via l'indexation pour éviter des erreurs.
Par exemple, le code suivant ne sera pas compilé :
m := map[string]int{"a": 1}
p := &m["a"] // erreur de compilation : impossible de prendre l'adresse de m["a"]
Si vous avez besoin de travailler avec l'adresse de la valeur, vous pouvez stocker des pointeurs ou des structures dans le map et prendre leur adresse :
m := map[string]*int{"a": new(int)}
*m["a"] = 42
Ou copier la valeur du map dans une variable et prendre l'adresse de cette variable.