go / beginner
Snippet
Slices: Dynamische Arrays in Go
Slices sind dynamische Ansichten auf Arrays. Anders als Arrays mit fester Größe können Slices mit append() wachsen oder schrumpfen. Die make()-Funktion erstellt ein Slice mit vorab reservierter Kapazität. Das Schneiden mit [start:end] erzeugt eine neue Ansicht (Referenz) auf dasselbe zugrunde liegende Array.
snippet.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package mainimport "fmt"func main() {names := []string{"Alice", "Bob"}fmt.Printf("Initial: %v, Length: %d, Capacity: %d\n", names, len(names), cap(names))names = append(names, "Charlie")fmt.Printf("After append: %v, Length: %d, Capacity: %d\n", names, len(names), cap(names))slice := make([]int, 0, 5)slice = append(slice, 10, 20, 30)fmt.Printf("Made slice: %v\n", slice)sub := slice[1:3]fmt.Printf("Sub-slice [1:3]: %v\n", sub)}
Erklärung
1
names := []string{"Alice", "Bob"}
Kompositionsliteral-Syntax erstellt ein Slice mit zwei Elementen
2
append(names, "Charlie")
append() fügt Elemente hinzu und kann neu zuweisen, wenn Kapazität überschritten wird
3
make([]int, 0, 5)
make(typ, länge, kapazität) reserviert vorab Kapazität ohne Elemente zu initialisieren
4
slice[1:3]
Slice-Ausdruck erzeugt eine Teilansicht von Index 1 (inklusiv) bis 3 (exklusiv)