Junior — Middle
Da li se vrednost nil može koristiti kao element iteracije za mapu u petlji?
sobes.tech АИ
Одговор од АИ
U Go-u, vrednost nil ne može se koristiti kao element iteracije za map u petlji, jer range preko map vraća ključ i vrednost, a nil označava odsustvo vrednosti.
Ako je vrednost u map pokazivač ili interfejs, može biti nil, što je normalno. Ali sam iterator ne može biti nil.
Primer:
m := map[string]*int{
"a": nil,
"b": new(int),
}
for k, v := range m {
ako v == nil {
fmt.Printf("ključ %s sadrži nil vrednost\n", k)
} else {
fmt.Printf("ključ %s sadrži vrednost %d\n", k, *v)
}
}
Ovde, v može biti nil, ali petlja range preko map funkcioniše ispravno.