Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Slices | Arrays und Slices
Einführung in Golang

bookSlices

Slices ähneln Arrays, besitzen jedoch dynamische Längen und sind somit eine flexiblere Alternative zu Arrays.

Um ein Slice zu erstellen, wird die gleiche Syntax wie bei Arrays verwendet, jedoch wird in diesem Fall die Größe weggelassen.

Erstellung eines Slices mit dem var-Schlüsselwort:

// Creates an empty slice with no elements
var sliceName [] dataType

// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}

Erstellung eines Slices mit dem :=-Operator:

// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }

Zusätzliche Elemente können einem Slice mit der Funktion append hinzugefügt werden. Die Funktion append gibt ein neues Slice mit den angehängten Elementen zurück, das anschließend in der ursprünglichen Slice-Variable gespeichert werden kann. Dies wird anhand eines Beispiels deutlicher. Die grundlegende Syntax der Funktion append ist wie folgt:

append(originalSlice, newElement1, newElement2, …)

Der folgende Code demonstriert die Verwendung der Funktion append:

index.go

index.go

copy
1234
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 auf Teilbereiche eines Arrays mit folgender Syntax zugreifen:

index.go

index.go

copy
1
arrayName[startIndex:endIndex + 1]

Es werden alle Elemente vom startingIndex bis zum endingIndex extrahiert. Beachten Sie, dass wir endingIndex + 1 angeben müssen. Dies wird mit einem Beispiel deutlicher. Zum Beispiel:

index.go

index.go

copy
12
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 Index 4 bis 9, einschließlich des Elements bei Index 4 und ausschließlich des Elements bei Index 9, wie in der Syntax dargestellt:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Wir können diesen extrahierten Teil des Arrays auch in einer Variablen speichern und so ein Slice erstellen:

index.go

index.go

copy
123
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 solches Slice auf den Teil des Arrays verweist, aus dem es erstellt wurde. Folglich wirken sich Änderungen an diesem Slice auch auf das ursprüngliche Array aus:

index.go

index.go

copy
12345678910111213
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] }
question mark

Was wird die Ausgabe des folgenden Codes sein?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you show an example of how to use the append function with slices?

How do I access or modify elements in a slice?

What happens if I append elements to a slice created from an array?

Awesome!

Completion rate improved to 1.96

bookSlices

Swipe um das Menü anzuzeigen

Slices ähneln Arrays, besitzen jedoch dynamische Längen und sind somit eine flexiblere Alternative zu Arrays.

Um ein Slice zu erstellen, wird die gleiche Syntax wie bei Arrays verwendet, jedoch wird in diesem Fall die Größe weggelassen.

Erstellung eines Slices mit dem var-Schlüsselwort:

// Creates an empty slice with no elements
var sliceName [] dataType

// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}

Erstellung eines Slices mit dem :=-Operator:

// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }

Zusätzliche Elemente können einem Slice mit der Funktion append hinzugefügt werden. Die Funktion append gibt ein neues Slice mit den angehängten Elementen zurück, das anschließend in der ursprünglichen Slice-Variable gespeichert werden kann. Dies wird anhand eines Beispiels deutlicher. Die grundlegende Syntax der Funktion append ist wie folgt:

append(originalSlice, newElement1, newElement2, …)

Der folgende Code demonstriert die Verwendung der Funktion append:

index.go

index.go

copy
1234
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 auf Teilbereiche eines Arrays mit folgender Syntax zugreifen:

index.go

index.go

copy
1
arrayName[startIndex:endIndex + 1]

Es werden alle Elemente vom startingIndex bis zum endingIndex extrahiert. Beachten Sie, dass wir endingIndex + 1 angeben müssen. Dies wird mit einem Beispiel deutlicher. Zum Beispiel:

index.go

index.go

copy
12
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 Index 4 bis 9, einschließlich des Elements bei Index 4 und ausschließlich des Elements bei Index 9, wie in der Syntax dargestellt:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Wir können diesen extrahierten Teil des Arrays auch in einer Variablen speichern und so ein Slice erstellen:

index.go

index.go

copy
123
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 solches Slice auf den Teil des Arrays verweist, aus dem es erstellt wurde. Folglich wirken sich Änderungen an diesem Slice auch auf das ursprüngliche Array aus:

index.go

index.go

copy
12345678910111213
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] }
question mark

Was wird die Ausgabe des folgenden Codes sein?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 3
some-alt