Kursinhalt
Einführung in Golang
Einführung in Golang
Slices
Slices ähneln Arrays, aber sie besitzen dynamische Längen, was sie zu einer flexibleren Alternative zu Arrays macht.
Um ein Slice zu erstellen, verwenden wir die gleiche Syntax wie für Arrays, aber in diesem Fall geben wir die Größe nicht an.
Erstellen eines Slices mit dem var
Schlüsselwort:
Erstellen eines Slices mit dem :=
Operator:
Wir können zusätzliche Elemente zu einem Slice mit der append
Funktion hinzufügen. Die append
Funktion gibt ein neues Slice mit den angehängten Elementen zurück, das wir dann in der ursprünglichen Slice-Variable speichern können. Dies wird mit einem Beispiel deutlicher. Die grundlegende Syntax der append
Funktion ist wie folgt:
Der folgende Code demonstriert die Verwendung der append
Funktion:
index
randomNumbers := [] int { 1, 4, 5} fmt.Println(randomNumbers) // Output: [1 4 5] randomNumbers = append(randomNumbers, 7, 9) fmt.Println(randomNumbers) // Output: [1 4 5 7 9]
Auf die gleiche Weise, wie wir auf Elemente innerhalb eines Arrays zugreifen können, können wir auch Teile eines Arrays mit der folgenden Syntax referenzieren:
index
arrayName[startIndex:endIndex + 1]
Es werden alle Elemente vom startingIndex
bis zum endingIndex
extrahiert. Bitte beachten Sie, dass wir endingIndex + 1
angeben müssen. Dies wird mit einem Beispiel deutlicher. Zum Beispiel:
index
var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } fmt.Println(numbers[4:9]) // Output: [10 12 14 16 17]
Es extrahiert die Elemente von den Indizes 4
bis 9
, einschließlich des Elements bei Index 4
und ausschließlich des Elements bei Index 9
, wie im Syntax ausgedrückt:
index
arrayName[startingIndex:endingIndex + 1]
Wir können diesen extrahierten Teil des Arrays auch in einer Variablen speichern und so einen Slice erstellen:
index
var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } numbersPart := numbers[2:7] fmt.Println(numbersPart) // Output: [6 9 10 12 14]
Es ist wichtig zu beachten, dass ein solcher Slice auf den Teil des Arrays verweist, aus dem er erstellt wurde. Folglich wirken sich alle Änderungen, die in diesem Slice vorgenommen werden, auch auf das ursprüngliche Array aus:
index
package main import "fmt" func main() { var pin = [4] int { 1, 2, 3, 4 } part := pin[1:3] fmt.Println(pin) // Output [1, 2, 3, 4] fmt.Println(part) // Output: [2, 3] part[0] *= 2 part[1] *= 3 fmt.Println(part) // Output [4, 9] fmt.Println(pin) // Output [1, 4, 9, 4] }
Danke für Ihr Feedback!