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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package mainimport "fmt"func main() {// Create a slice with makenumbers := make([]int, 3, 10)fmt.Printf("Length: %d, Capacity: %d\n", len(numbers), cap(numbers))// Append elementsnumbers = append(numbers, 1, 2, 3, 4)fmt.Printf("After append - Length: %d, Capacity: %d\n", len(numbers), cap(numbers))fmt.Println("Contents:", numbers)// Slice literalsfruits := []string{"apple", "banana", "orange"}fmt.Println("Fruits:", fruits)// Sub-slicingsubset := 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)