Junior — Middle
Welche Aktionen sind mit einer Map-Variablen erlaubt, die noch nicht initialisiert wurde?
sobes.tech KI
Antwort von AI
In Go hat eine Variable vom Typ map standardmäßig den Wert nil, wenn sie nicht initialisiert wurde.
Mit einer nil-Karte sind folgende Aktionen erlaubt:
- Wert anhand eines Schlüssels lesen — gibt den Nullwert des Typs und einen Indikator für das Fehlen des Schlüssels zurück.
- Überprüfung, ob ein Schlüssel existiert, mit
value, ok := map[key].
Nicht erlaubte Operationen:
- Schreiben (Zuweisung eines Werts an einen Schlüssel) löst einen Panic aus.
- Das Aufrufen von Funktionen, die die Karte ändern (z.B.
delete), ist bei einernil-Karte sicher und verursacht keinen Panic.
Beispiel:
var m map[string]int // m == nil
v, ok := m["key"] // ok == false, v == 0
// m["key"] = 10 // panic: Zuweisung an Eintrag in nil-Map
delete(m, "key") // sicher, tut nichts
Um eine Map zum Schreiben zu verwenden, muss sie initialisiert werden, z.B. mit make:
m = make(map[string]int)
m["key"] = 10 // funktioniert jetzt