Junior — Middle
Come si accede ai valori in un dizionario che non è stato ancora creato in anticipo?
sobes.tech AI
Risposta dell'AI
In Go, se una mappa (map) non è ancora stata creata (cioè è nil), tentare di accedere agli elementi tramite la chiave non causerà un panic, ma restituirà semplicemente il valore zero del tipo degli elementi.
Ad esempio:
var m map[string]int // m == nil
fmt.Println(m["key"]) // Mostrerà 0, non causerà errore
Tuttavia, tentare di assegnare un valore a una mappa nil provocherà un panic:
m["key"] = 10 // panic: assegnazione a una voce in una mappa nil
Perciò, prima di scrivere in una mappa, bisogna assicurarsi che sia inizializzata, ad esempio:
m = make(map[string]int)
m["key"] = 10
In questo modo, per la lettura si può accedere a una mappa nil senza errori, ma per la scrittura è necessario creare preventivamente la mappa.