Sobes.tech
Junior — Middle

Vai var izmantot nil vērtību kā iterācijas elementu kartē ciklā?

sobes.tech AI

Atbilde no AI

Go valodā vērtība nil nevar tikt izmantota kā iterācijas elements map ciklā, jo range pār map atgriež atslēgu un vērtību, un nil apzīmē vērtības neesamību.

Ja vērtība map ir norādītājs vai interfeiss, tā var būt nil, un tas ir normāli. Bet pats iterators nevar būt nil.

Piemērs:

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

for k, v := range m {
    ja v == nil {
        fmt.Printf("atslēga %s satur nil vērtību\n", k)
    } else {
        fmt.Printf("atslēga %s satur vērtību %d\n", k, *v)
    }
}

Šeit, v var būt nil, bet map pār range darbojas pareizi.