Senior
Was ist ein Slice und wie unterscheidet es sich von einem Array?
sobes.tech KI
Antwort von AI
In Go ist ein Array eine Struktur mit fester Größe, die Elemente eines einzigen Typs enthält. Die Größe des Arrays wird bei der Deklaration festgelegt und kann während der Programmausführung nicht geändert werden.
Slice ist ein dynamischer, größenveränderbarer Ausschnitt eines Arrays. Es ist eine Struktur, die einen Zeiger auf das Array, die Länge und die Kapazität enthält. Slices ermöglichen die Arbeit mit Teilmengen des Arrays und erweitern sich automatisch bei Bedarf.
Hauptunterschiede:
- Größe: Array hat eine feste Größe, Slice ist dynamisch.
- Übergabe: Arrays werden per Wert (kopiert) übergeben, Slices per Referenz (Zeiger auf das Array).
- Flexibilität: Slice kann mit der Funktion
appenderweitert werden, Array nicht.
Beispiel:
var arr [3]int = [3]int{1, 2, 3} // Array mit fester Größe
var s []int = arr[0:2] // Slice, das auf einen Teil des Arrays verweist
s = append(s, 4) // Slice wird erweitert, bei Bedarf wird ein neuer Array erstellt