Junior — Middle
Lze hodnotu nil použít jako iterativní prvek pro mapu v cyklu?
sobes.tech AI
Odpověď od AI
V Go nelze hodnotu nil použít jako prvek iterace pro map v cyklu, protože range přes map vrací klíč a hodnotu a nil znamená absenci hodnoty.
Pokud je hodnota v map ukazatel nebo rozhraní, může být nil, což je normální. Ale samotný iterátor nemůže být nil.
Příklad:
m := map[string]*int{
"a": nil,
"b": new(int),
}
for k, v := range m {
pokud v == nil {
fmt.Printf("klíč %s obsahuje nil hodnotu\n", k)
} else {
fmt.Printf("klíč %s obsahuje hodnotu %d\n", k, *v)
}
}
Zde může být v nil, ale cyklus range přes map funguje správně.