Junior — Middle
È possibile ottenere l'indirizzo di un elemento specifico memorizzato in una tabella associativa (Map)?
sobes.tech AI
Risposta dell'AI
In Go, non è possibile ottenere direttamente l'indirizzo di un elemento specifico memorizzato in una map. Ciò è dovuto al fatto che gli elementi della mappa possono spostarsi in memoria durante le modifiche, e il compilatore non consente di prendere l'indirizzo del valore tramite l'indicizzazione per evitare errori.
Ad esempio, il seguente codice non verrà compilato:
m := map[string]int{"a": 1}
p := &m["a"] // errore di compilazione: impossibile prendere l'indirizzo di m["a"]
Se hai bisogno di lavorare con l'indirizzo del valore, puoi memorizzare puntatori o strutture nella map e prendere il loro indirizzo:
m := map[string]*int{"a": new(int)}
*m["a"] = 42
Oppure copiare il valore dalla map in una variabile e prendere l'indirizzo di questa variabile.