Junior — Middle
Kann man den Wert nil als Iterationselement für map in einer Schleife verwenden?
sobes.tech KI
Antwort von AI
In Go kann der Wert nil nicht als Iterationselement für map in einer Schleife verwendet werden, weil range über map Schlüssel und Wert zurückgibt und nil das Fehlen eines Wertes ist.
Wenn der Wert in map ein Zeiger oder eine Schnittstelle ist, kann er nil sein, was normal ist. Aber der Iterator selbst kann nicht nil sein.
Beispiel:
m := map[string]*int{
"a": nil,
"b": new(int),
}
for k, v := range m {
if v == nil {
fmt.Printf("Schlüssel %s enthält nil-Wert\n", k)
} else {
fmt.Printf("Schlüssel %s enthält Wert %d\n", k, *v)
}
}
Hier kann v nil sein, aber die range-Schleife über map funktioniert korrekt.