In Golangs Slice ist append() eine sehr wichtige Funktion und eine sehr häufig verwendete Funktion. In diesem Artikel wird die Verwendung der Slicing- und append()-Funktionen von Golang vorgestellt.
1. Golang-Slicing
Im Vergleich zu Arrays hat das Slicing in Golang leistungsfähigere Funktionen. Ein Slice unterscheidet sich von einem Array dadurch, dass sich seine Länge dynamisch ändern kann. In Golang ist ein Slice ein Referenztyp, der auf ein zugrunde liegendes Array verweist. Wenn die Slice-Kapazität nicht ausreicht, wird die Slice-Größe bei Bedarf automatisch erhöht.
Die Art und Weise, ein Slice zu definieren, ist wie folgt:
var s1 []int // []int 表示定义了一个 int 类型的切片
Die Länge und Kapazität von s1 sind zu diesem Zeitpunkt beide 0, da das zugrunde liegende Array nicht definiert ist.
Das Definieren eines Slice mit einer Länge von 5 und einer Kapazität von 10 kann mit der Funktion make() implementiert werden:
s2 := make([]int, 5, 10) // 长度为 5,容量为 10
slice[index] kann auf die Elemente in zugreifen Slice, bei dem es sich im Wesentlichen um die Elemente der untersten Ebene im Array handelt. Slice[Start:End] kann Unter-Slices vom Start (inklusive) bis zum Ende (exklusiv) abrufen. Zum Beispiel:
a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} fmt.Println(a[3]) // 4 fmt.Println(a[1:5]) // [2 3 4 5] fmt.Println(a[:5]) // [1 2 3 4 5] fmt.Println(a[5:]) // [6 7 8 9 10] fmt.Println(a[:]) // [1 2 3 4 5 6 7 8 9 10]
2. append()-Funktion
append()-Funktion kann Elemente am Ende des Slice hinzufügen und einen neuen Slice zurückgeben. Die Funktion append() hat die folgenden Verwendungszwecke.
Der folgende Code fügt Elemente zu s1 hinzu und generiert ein neues Slice:
s1 := []int{1, 2, 3, 4, 5} s2 := append(s1, 6, 7) fmt.Println(s1) // [1 2 3 4 5] fmt.Println(s2) // [1 2 3 4 5 6 7]
Hinweis: Wenn Sie die Funktion append() zum Hinzufügen von Elementen zu einem Slice verwenden und die Kapazität nicht überschritten wird, ändert sich das zugrunde liegende Array nicht. Wenn die Kapazität überschritten wird, wird ein neues zugrunde liegendes Array generiert.
Der folgende Code fügt Elemente von s2 zu s1 hinzu und generiert ein neues Slice:
s1 := []int{1, 2, 3, 4, 5} s2 := []int{6, 7} s3 := append(s1, s2...) fmt.Println(s1) // [1 2 3 4 5] fmt.Println(s2) // [6 7] fmt.Println(s3) // [1 2 3 4 5 6 7]
Hinweis: Wenn Sie die Funktion append() verwenden, um ein Slice zu einem anderen Slice hinzuzufügen, müssen Sie nach s2 drei Punkte (...) hinzufügen, was bedeutet, dass s2 geteilt und die Elemente entfernt werden.
Der folgende Code erstellt ein Slice s1 mit einer Länge von 0 und einer Kapazität von 0 und fügt ihm dann Elemente hinzu : # 🎜🎜#
var s1 []int s1 = append(s1, 1) s1 = append(s1, 2, 3) fmt.Println(s1) // [1 2 3]
Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Sie die Slicing- und append()-Funktionen von Golang verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!