Sobes.tech
Junior — Middle

Kas on võimalik kasutada nil väärtust iteratsiooni elemendina kaardil tsüklis?

sobes.tech AI

Vastus AI-lt

Go keeles ei saa väärtust nil kasutada map-i iteratsiooni elemendina tsüklis, sest range map-i peal tagastab võtme ja väärtuse ning nil tähistab väärtuse puudumist.

Kui väärtus map-is on näitaja või liides, võib see olla nil, mis on normaalne. Kuid ise iterator ei saa olla nil.

Näide:

m := map[string]*int{
    "a": nil,
    "b": new(int),
}

for k, v := range m {
    kui v == nil {
        fmt.Printf("võti %s sisaldab nil väärtust\n", k)
    } else {
        fmt.Printf("võti %s sisaldab väärtust %d\n", k, *v)
    }
}

Siin võib v olla nil, kuid map-i peal range töötab õigesti.