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