capypad
0 Tage Serie
go / beginner
Snippet

Slices: Go's Dynamische Arrays

Slices sind dynamische Ansichten auf Arrays. Im Gegensatz zu festgroßen Arrays können Slices bei Bedarf wachsen und schrumpfen. Die make-Funktion erstellt ein Slice mit einer bestimmten Länge und Kapazität. Du kannst Elemente mit der eingebauten append-Funktion hinzufügen, die bei Bedarf automatisch die Größenänderung übernimmt. Ein Slice besteht aus drei Komponenten: ein Zeiger auf das zugrunde liegende Array, eine Länge (aktuelle Anzahl der Elemente) und eine Kapazität (wie viel es wachsen kann, bevor eine Neuallokation erfolgt).

snippet.go
go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main
 
import "fmt"
 
func main() {
// Create a slice with make
numbers := make([]int, 3, 10)
fmt.Printf("Length: %d, Capacity: %d\n", len(numbers), cap(numbers))
 
// Append elements
numbers = append(numbers, 1, 2, 3, 4)
fmt.Printf("After append - Length: %d, Capacity: %d\n", len(numbers), cap(numbers))
fmt.Println("Contents:", numbers)
 
// Slice literals
fruits := []string{"apple", "banana", "orange"}
fmt.Println("Fruits:", fruits)
 
// Sub-slicing
subset := numbers[1:4]
fmt.Println("Subset:", subset)
}
Erklärung
1
numbers := make([]int, 3, 10)
Erstellt ein Slice mit Länge 3 und Kapazität 10, alle Elemente werden auf den Nullwert (0) initialisiert
2
append(numbers, 1, 2, 3, 4)
Fügt mehrere Werte zum Slice hinzu und gibt ein neues Slice zurück
3
subset := numbers[1:4]
Erstellt ein Sub-Slice von Index 1 (inklusiv) bis 4 (exklusiv)