Junior — Middle
È possibile estrarre un valore da una mappa che non è ancora stata inizializzata?
sobes.tech AI
Risposta dell'AI
In Go, se una mappa (map) non è stata inizializzata (cioè, è uguale a nil), tentare di estrarre un valore tramite una chiave non causerà un panic, ma restituirà semplicemente il valore zero per il tipo di valore e un flag booleano false, che indica che la chiave non esiste.
Esempio:
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Mostrerà: 0 false
Tuttavia, se si tenta di assegnare un valore a una mappa non inizializzata, si verificherà un panic:
m["key"] = 10 // panic: assegnamento a entry in nil map
Perciò, per usare in modo sicuro una mappa, bisogna inizializzarla, ad esempio, usando make:
m = make(map[string]int)
m["key"] = 10 // ora funziona correttamente