Sobes.tech
Junior — Middle

Lze získat adresu určitého prvku uloženého v asociativní tabulce (Map)?

sobes.tech AI

Odpověď od AI

V jazyce Go nelze přímo získat adresu konkrétního prvku uloženého v map. To je způsobeno tím, že prvky mapy se při změnách mohou přesouvat v paměti, a překladač nedovolí vzít adresu hodnoty přes indexování, aby se předešlo chybám.

Například následující kód nebude kompilovat:

m := map[string]int{"a": 1}
p := &m["a"] // chyba kompilace: nelze vzít adresu m["a"]

Pokud potřebujete pracovat s adresou hodnoty, můžete v map uložit ukazatele nebo struktury a vzít jejich adresu:

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

Nebo zkopírovat hodnotu z map do proměnné a vzít její adresu.