【Vorwort】
Slice ist in der Go-Sprache eine sehr verbreitete Datenstruktur und wird häufig für dynamische Array-Operationen verwendet. Bei der Verwendung müssen wir häufig Vorgänge wie das Hinzufügen, Löschen, Überprüfen und Ändern von Slices ausführen, und die Go-Sprache bietet einige integrierte Methoden zum Implementieren dieser Vorgänge. In diesem Artikel werden die grundlegende Verwendung und die gängigen Slicing-Methoden in der Go-Sprache ausführlich vorgestellt.
【1. Definition von Slice】
Ein Slice ist eine Sequenz variabler Länge, definiert als:
var arr []type
Der Typ hier kann ein beliebiger Typ sein, z. B. int, string usw. Sie können auch die Methode make() verwenden, um direkt ein Slice zu erstellen:
arr := make([]type, len, cap)
wobei len die Länge des Slice und cap die Kapazität des Slice darstellt. Hierbei ist zu beachten, dass die Kapazität des Slice größer oder gleich der Länge ist. 2. Grundoperationen beim Schneiden
Zu dem Slice hinzufügen Elemente können die append()-Methode verwenden, wie unten gezeigt:arr := []string{"hello", "world", "go"} for index, value := range arr { fmt.Printf("index:%d, value:%s ", index, value) }
index:0, value:hello index:1, value:world index:2, value:go
arr [:1]: repräsentiert die Elemente von 0 bis 1 (außer 1), also „Hallo“
arr[2:]: repräsentiert die Elemente von 2 bis zum letzten Element des Arrays (außer 2). ), das heißt „go“;
...bedeutet, zwei Slices zusammenzuführen.
Das Endergebnis ist das Löschen des Elements „world“ mit Index 1. 2.4 Änderung von Slicesvar arr []string arr = append(arr, "hello")
arr := []string{"hello", "world", "go"} arr = append(arr[:1], arr[2:]...)
arr := []string{"hello", "world", "go"} arr[1] = "Golang" fmt.Println(arr)
[hello Golang go]
arr := []string{"hello", "world", "go"} fmt.Println(len(arr))
3
arr := make([]string, 3, 5) fmt.Println(cap(arr))
5
var arr1 = []string{"apple", "banana", "orange"} var arr2 = make([]string, 3) copy(arr2, arr1) fmt.Println(arr2)
[apple banana orange]
Wenn die Kapazität des Slice nicht ausreicht, um das neue Element aufzunehmen, erweitert die append()-Methode die Kapazität automatisch . Die Erweiterungsbedingungen sind:
Wenn die Länge des neuen Elements kleiner als 1024 ist, wird die Kapazität des Slice verdoppelt.
Wenn die Länge des neuen Elements größer oder gleich 1024 ist , jede Erweiterung erhöht sich um 1/4 der ursprünglichen Kapazität, bis die Kapazität ausreicht.
3.6 Variable Parameter der append()-Methode Die Eingabeparameter der append()-Methode können variable Parameter sein und dem Slice können mehrere Elemente hinzugefügt werden. Das Codebeispiel lautet wie folgt:arr := []string{"hello", "world", "go"} arr = append(arr, "Golang") fmt.Println(arr)
[hello world go Golang]
Das obige ist der detaillierte Inhalt vonGolang-Slice-Methode Op. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!