Heim >Backend-Entwicklung >Golang >Golang-Slice-Methode Op
【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) }Hier ist zu beachten, dass nach Verwendung der append()-Methode deren Rückgabewert dem Slice neu zugewiesen werden muss. 2.3 Löschen von SlicesUm Elemente in einem Slice zu löschen, können Sie die integrierte Methode delete() verwenden, wie unten gezeigt:
index:0, value:hello index:1, value:world index:2, value:goDie Syntax hier ist sehr knifflig, wir können sie in drei Teile unterteilen:
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)Das Ausgabeergebnis ist:
[hello Golang go]3.2 cap()-Methode cap()-Methode Wird verwendet, um die Kapazität eines Slice zu erhalten. Das Codebeispiel lautet wie folgt:
arr := []string{"hello", "world", "go"} fmt.Println(len(arr))Das Ausgabeergebnis lautet:
33.3 copy()-Methodecopy()-Methode kann Kopieren Sie den Wert eines Slice in ein anderes Slice. Das Codebeispiel lautet wie folgt:
arr := make([]string, 3, 5) fmt.Println(cap(arr))Das Ausgabeergebnis lautet:
53.4 append()-Methodeappend()-Methode wird zum Hinzufügen von Elementen zum Slice verwendet Beispiel ist wie folgt:
var arr1 = []string{"apple", "banana", "orange"} var arr2 = make([]string, 3) copy(arr2, arr1) fmt.Println(arr2)Das Ausgabeergebnis ist:
[apple banana orange]3.5 append()-Methode und Erweiterung
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)Die Ausgabe Das Ergebnis ist:
[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!