Junior — Middle
Ar galima naudoti reikšmę nil kaip iteracinį elementą map'e cikle?
sobes.tech AI
Atsakymas iš AI
Go kalboje reikšmė nil negali būti naudojama kaip iteracijos elementas map cikle, nes range per map grąžina raktą ir reikšmę, o nil reiškia reikšmės nebuvimą.
Jei reikšmė map yra rodyklė arba interfeisas, ji gali būti nil, ir tai yra normalu. Bet pats iteratoriaus elementas negali būti nil.
Pavyzdys:
m := map[string]*int{
"a": nil,
"b": new(int),
}
for k, v := range m {
jei v == nil {
fmt.Printf("raktas %s turi nil reikšmę\n", k)
} else {
fmt.Printf("raktas %s turi reikšmę %d\n", k, *v)
}
}
Čia, v gali būti nil, bet range per map veikia teisingai.