Sobes.tech
Junior — Middle

În ce cazuri este permis să efectuați o operație de inserție într-un Map care nu a fost încă inițializat?

sobes.tech AI

Răspuns de la AI

În Go, nu se poate efectua o operație de inserare într-un map dacă acesta nu a fost inițializat (adică, dacă este nil), deoarece acest lucru va duce la panic în timpul execuției.

Inițializarea map se face cu ajutorul funcției make:

m := make(map[string]int)
ms["key"] = 42 // corect

Dacă map este nil, o încercare de scriere va provoca panic:

var m map[string]int
m["key"] = 42 // panic: atribuire într-un map nil

Excepție:

  • Dacă map este declarat, dar neinițializat, poate fi inițializat direct înainte de inserție.
  • Uneori, map poate fi inițializat în constructor sau funcție și transmis mai departe.

Prin urmare, inserția într-un map neinițializat este permisă doar după inițializarea explicită prin make sau atribuirea unui map deja existent și inițializat. Fără aceasta, operația va cauza o eroare în timpul execuției.