Junior — Middle
Welche Folgen hat die Verwendung der Methode append für einen Slice, der ohne Anfangswerte deklariert wurde?
sobes.tech KI
Antwort von AI
Wenn eine Slice in Go ohne Anfangswerte deklariert wird, zum Beispiel var s []int, ist sie initial nil und zeigt nicht auf ein zugewiesenes Array. Bei Verwendung der Funktion append weist Go automatisch ein neues Array zu und fügt die Elemente hinzu, wobei eine neue Slice mit der erforderlichen Kapazität zurückgegeben wird.
Das bedeutet, dass append sicher mit nil-Slices funktioniert, und Sie können schreiben:
var s []int // nil-Slice
s = append(s, 1, 2, 3) // jetzt zeigt s auf ein neues Array mit den Elementen
Folgen:
- Es ist nicht notwendig, die Slice vor der Verwendung von
appendzu initialisieren. - Beim ersten Aufruf von
appendwird Speicher zugewiesen. - Wenn die Slice nil ist, dann gilt
len(s) == 0undcap(s) == 0.
Daher ist die Verwendung von append mit nil-Slices eine Standardpraxis in Go, die die Arbeit mit dynamischen Sammlungen vereinfacht.