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