Sobes.tech
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.