Sobes.tech
Junior — Middle

Koje radnje su dozvoljene sa promenljivom tipa Map koja još nije inicijalizovana?

sobes.tech АИ

Одговор од АИ

U Go jeziku, promenljiva tipa map po defaultu ima vrednost nil ako nije inicijalizovana.

Sa nil mapom su dozvoljene sledeće radnje:

  • Čitanje vrednosti po ključevi — vratiće nultu vrednost tipa i indikator da ključ ne postoji.
  • Provera postojanja ključa pomoću value, ok := map[key].

Nedozvoljene operacije:

  • Upis (dodeljivanje vrednosti po ključevi) izazvaće panic.
  • Pozivanje funkcija koje menjaju mapu (npr. delete) na nil mapi je sigurno i ne izaziva panic.

Primer:

var m map[string]int // m == nil

v, ok := m["key"] // ok == false, v == 0

// m["key"] = 10 // panic: dodela u nil mapu

delete(m, "key") // sigurno, ne radi ništa

Da biste koristili mapu za zapis, morate je inicijalizovati, na primer, pomoću make:

m = make(map[string]int)
m["key"] = 10 // sada radi