Sobes.tech
Junior — Middle

In welchen Situationen im Programmiersprache erfolgt eine automatische Vergrößerung des dynamischen Arrays (Slice)?

sobes.tech KI

Antwort von AI

In Go ist ein Slice eine Struktur, die einen Zeiger auf ein Array, eine Länge und eine Kapazität enthält. Die Größe des Slices erhöht sich automatisch, wenn du Elemente mit der Funktion append hinzufügst und die aktuelle Länge des Slices seine Kapazität erreicht.

In diesem Moment wird ein neues Array mit erhöhter Kapazität (meistens doppelt so groß wie das vorherige) alloziert, die alten Elemente werden in das neue Array kopiert und der Zeiger des Slices auf dieses neue Array aktualisiert. Dadurch kann das Slice dynamisch wachsen, während Elemente hinzugefügt werden.

Beispiel:

s := make([]int, 0, 2) // Länge 0, Kapazität 2
s = append(s, 1)        // Länge 1, Kapazität 2
s = append(s, 2)        // Länge 2, Kapazität 2
s = append(s, 3)        // Länge 3, Kapazität erhöht, z.B. auf 4

Auf diese Weise wächst die Größe automatisch, wenn Elemente hinzugefügt werden und die Länge die Kapazität des Slices erreicht.