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.