Sobes.tech
Junior — Middle

Je možné získať adresu konkrétneho prvku uloženého v asociatívnej tabuľke (Map)?

sobes.tech AI

Odpoveď od AI

V jazyku Go nie je možné priamo získať adresu konkrétneho prvku uloženého v map. To je spôsobené tým, že prvky mapy sa môžu pri zmenách presúvať v pamäti, a prekladač neumožňuje brať adresu hodnoty cez indexovanie, aby sa predišlo chybám.

Napríklad, nasledujúci kód nebude kompilovať:

m := map[string]int{"a": 1}
p := &m["a"] // chyba kompilácie: nemožno vziať adresu m["a"]

Ak potrebujete pracovať s adresou hodnoty, môžete v map uložiť ukazovatele alebo štruktúry a brať ich adresu:

m := map[string]*int{"a": new(int)}
*m["a"] = 42

Alebo skopírovať hodnotu z map do premennej a brať jej adresu.