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
nilist (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)undcap(slice)ermitteln. Für einnil-Slice sind Länge und Kapazität 0. - Den Operator
appendverwenden, um Elemente hinzuzufügen. Dabei erstelltappendautomatisch ein neues Slice mit zugewiesenem Speicher, wenn das ursprüngliche Slicenilist.
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]