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