Junior — Middle
Kann man Elemente zu einer Map hinzufügen, die noch nicht erstellt wurde oder keine Anfangswerte erhalten hat?
sobes.tech KI
Antwort von AI
In Go können Elemente zu einer map nur hinzugefügt werden, wenn sie initialisiert wurde. Bei der Deklaration einer Variablen vom Typ map ohne Initialisierung hat sie den Wert nil, und ein Versuch, in diese map zu schreiben, führt zur Laufzeit zu einem Panic.
Um Elemente hinzuzufügen, muss man zuerst eine map mit der Funktion make erstellen oder sie mit einem Literal initialisieren:
var m map[string]int // m == nil
m["key"] = 1 // Panic: Zuweisung an Eintrag in nil-Map
m = make(map[string]int) // jetzt ist m initialisiert
m["key"] = 1 // funktioniert
// oder direkt initialisieren
m2 := map[string]int{"initial": 10}
m2["key"] = 1 // funktioniert
Daher muss die map vor dem Hinzufügen von Elementen erstellt werden und darf nicht nil sein.