Junior — Middle
Cum se accesează valorile dintr-un dicționar care nu a fost încă creat anterior?
sobes.tech AI
Răspuns de la AI
În Go, dacă un map (dictionar) nu a fost încă creat (adică este nil), încercarea de a accesa elemente după cheie nu va provoca panic, ci va returna pur și simplu valoarea zero a tipului elementelor.
De exemplu:
var m map[string]int // m == nil
fmt.Println(m["key"]) // Va afișa 0, nu va provoca eroare
Totuși, încercarea de a atribui o valoare unui map nil va duce la panic:
m["key"] = 10 // panic: atribuire la intrare în map nil
De aceea, înainte de a scrie în map, trebuie să te asiguri că este inițializat, de exemplu:
m = make(map[string]int)
m["key"] = 10
Astfel, pentru citire, se poate accesa un map nil fără erori, dar pentru scriere, trebuie creat în prealabil map-ul.