Junior — Middle
Môže sa hodnota nil použiť ako iteratívny prvok pre mapu v cykle?
sobes.tech AI
Odpoveď od AI
V Go, hodnota nil nemôže byť použitá ako prvok iterácie pre map v cykle, pretože range cez map vracia kľúč a hodnotu a nil znamená absenciu hodnoty.
Ak je hodnota v map ukazovateľ alebo rozhranie, môže byť nil, čo je normálne. Ale samotný iterátor nemôže byť nil.
Príklad:
m := map[string]*int{
"a": nil,
"b": new(int),
}
for k, v := range m {
ak v == nil {
fmt.Printf("kľúč %s obsahuje nil hodnotu\n", k)
} else {
fmt.Printf("kľúč %s obsahuje hodnotu %d\n", k, *v)
}
}
Tu, v môže byť nil, ale cyklus range cez map funguje správne.