Heim  >  Artikel  >  Backend-Entwicklung  >  Lassen Sie uns darüber sprechen, wie Sie die Slicing- und append()-Funktionen von Golang verwenden

Lassen Sie uns darüber sprechen, wie Sie die Slicing- und append()-Funktionen von Golang verwenden

PHPz
PHPzOriginal
2023-04-27 09:08:30883Durchsuche

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.

1. Elemente am Ende des Slice hinzufügen

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.

2. Ein Slice zu einem anderen Slice hinzufügen

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.

3. Erzeugen Sie ein neues Slice durch append()

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]
append()-Funktion gibt das neu generierte Slice zurück. Wenn die ursprüngliche Slice-Länge nicht ausreicht, wird ein neues Array erstellt, sodass Sie die append()-Funktion verwenden können, wenn die Slice-Länge ist 0.

3. Zusammenfassung

Durch die Einleitung dieses Artikels haben wir etwas über die Verwendung der Golang-Slicing- und append()-Funktionen erfahren. Slicing ist in Golang sehr wichtig und wird in der tatsächlichen Entwicklung sehr häufig verwendet. Für Golang-Entwickler ist es sehr wichtig, die grundlegende Verwendung von Slicing zu beherrschen. Wenn Sie die Funktion append() verwenden, müssen Sie auf den Rückgabewert achten, und Sie müssen besonders auf die Verwendung des ...-Operators achten, um ein Slice zu teilen und es einem anderen Slice hinzuzufügen.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn