Sobes.tech
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.