Junior — Middle
In quali casi è consentito eseguire un'operazione di inserimento in una Map che non è ancora stata inizializzata?
sobes.tech AI
Risposta dell'AI
In Go, non è possibile eseguire un'operazione di inserimento in una map se questa non è stata inizializzata (cioè, se è nil), poiché ciò provocherebbe un panic in fase di esecuzione.
L'inizializzazione di una map avviene tramite la funzione make:
m := make(map[string]int)
ms["key"] = 42 // corretto
Se la map è nil, un tentativo di scrittura provocherà un panic:
var m map[string]int
m["key"] = 42 // panic: assegnamento a una entry in una map nil
Eccezione:
- Se la
mapè dichiarata ma non inizializzata, può essere inizializzata immediatamente prima dell'inserimento. - A volte, la
mappuò essere inizializzata in un costruttore o funzione e passata avanti.
Pertanto, l'inserimento in una map non inizializzata è consentito solo dopo la sua iniziale esplicita tramite make o assegnazione di una map già esistente e inizializzata. Senza ciò, l'operazione causerà un errore in fase di esecuzione.