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) nanilmapi 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