Junior — Middle
Se poate obține adresa unui element specific stocat într-un tabel asociativ (Map)?
sobes.tech AI
Răspuns de la AI
În Go, nu se poate obține direct adresa unui element specific stocat în map. Acest lucru se datorează faptului că elementele din hartă pot fi mutate în memorie în timpul modificărilor, iar compilatorul nu permite luarea adresei valorii prin indexare pentru a evita erorile.
De exemplu, codul următor nu se va compila:
m := map[string]int{"a": 1}
p := &m["a"] // eroare de compilare: nu se poate lua adresa lui m["a"]
Dacă trebuie să lucrați cu adresa valorii, puteți stoca pointeri sau structuri în map și să luați adresa lor:
m := map[string]*int{"a": new(int)}
*m["a"] = 42
Sau să copiați valoarea din map într-o variabilă și să luați adresa acesteia.