Junior — Middle
Wie greift man auf Werte in einem Wörterbuch zu, das noch nicht vorher erstellt wurde?
sobes.tech KI
Antwort von AI
In Go, wenn eine Map (Wörterbuch) noch nicht erstellt wurde (also nil ist), führt der Zugriff auf Elemente per Schlüssel nicht zu einem Panic, sondern gibt einfach den Nullwert des Elementtyps zurück.
Zum Beispiel:
var m map[string]int // m == nil
fmt.Println(m["key"]) // Gibt 0 aus, verursacht keinen Fehler
Der Versuch, einen Wert in eine nil-Map zu schreiben, führt jedoch zu einem Panic:
m["key"] = 10 // Panic: Zuweisung an Eintrag in nil-Map
Daher sollte man vor dem Schreiben in eine Map sicherstellen, dass sie initialisiert ist, z.B.:
m = make(map[string]int)
m["key"] = 10
Auf diese Weise kann man beim Lesen auf eine nil-Map ohne Fehler zugreifen, beim Schreiben muss die Map jedoch vorher erstellt werden.