Sobes.tech
Junior — Middle

Welche Aktionen sind beim Arbeiten mit einem Slice in Go erlaubt, wenn dieser nicht explizit initialisiert wurde?

sobes.tech KI

Antwort von AI

In Go, wenn ein Slice nicht explizit initialisiert wurde (d.h., den Wert nil hat), können folgende Aktionen durchgeführt werden:

  • Überprüfen, ob es nil ist (z.B. if slice == nil), was nützlich ist, um festzustellen, ob das Slice initialisiert wurde.
  • Die Länge und Kapazität mit len(slice) und cap(slice) ermitteln. Für ein nil-Slice sind Länge und Kapazität 0.
  • Den Operator append verwenden, um Elemente hinzuzufügen. Dabei erstellt append automatisch ein neues Slice mit zugewiesenem Speicher, wenn das ursprüngliche Slice nil ist.

Allerdings kann man nicht auf Elemente des Slices per Index zugreifen, wenn es nil oder leer ist, da dies einen Panic auslöst.

Beispiel:

var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // jetzt ist s initialisiert und enthält [1]