Junior — Middle
Was passiert, wenn man einen Slice mit einem Nullwert erstellt und welche Operationen sind damit erlaubt?
sobes.tech KI
Antwort von AI
In Go ist eine Slice mit Nullwert eine nil-Slice. Sie zeigt auf kein Array und hat eine Länge und Kapazität von null.
Erlaubte Operationen mit einer solchen Slice:
- Ermittlung der Länge und Kapazität (
len(slice) == 0,cap(slice) == 0) - Iteration über die Slice (die Schleife wird einfach nicht ausgeführt)
- Hinzufügen von Elementen mit
append, was eine neue Slice mit zugewiesenem Speicher erstellt
Beispiel:
var s []int // nil-Slice
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = append(s, 1) // jetzt ist s nicht nil, enthält ein Element
Es ist nicht möglich, auf Elemente per Index zuzugreifen, da die Slice leer ist und dies einen Panic auslöst.