Sobes.tech
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 append zu initialisieren.
  • Beim ersten Aufruf von append wird Speicher zugewiesen.
  • Wenn die Slice nil ist, dann gilt len(s) == 0 und cap(s) == 0.

Daher ist die Verwendung von append mit nil-Slices eine Standardpraxis in Go, die die Arbeit mit dynamischen Sammlungen vereinfacht.