Heim > Artikel > Backend-Entwicklung > So löschen Sie Elemente aus einem Slice in der Go-Sprache
Löschmethode: 1. Verwenden Sie die Anweisung „Slice-Objekt [N:]“, um die ersten N Elemente zu löschen. 2. Verwenden Sie „append(Slice-Objekt [:i], Slice-Objekt [i+N:]...)“ Anweisung zum Löschen der mittleren N Elemente; 3. Verwenden Sie die Anweisung „slice object [:len (slice object)-N]“, um die letzten N Elemente zu löschen.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, GO 1.11.2, Dell G3-Computer.
Go-Sprache bietet keine spezielle Syntax oder Schnittstelle zum Löschen von Slice-Elementen. Sie müssen die Eigenschaften des Slice selbst verwenden, um Elemente zu löschen Das Löschen von Elementen am Ende des Slice ist am schnellsten.
Von Anfang an löschen
Durch das Löschen der Elemente am Anfang kann der Datenzeiger direkt verschoben werden:
a = []int{1, 2, 3} a = a[1:] // 删除开头1个元素 a = a[N:] // 删除开头N个元素
Sie können den Datenzeiger auch nicht verschieben, aber die folgenden Daten an den Anfang verschieben. Sie können Anhängen zum Vervollständigen verwenden es an Ort und Stelle (sogenannte Vervollständigung an Ort und Stelle) Dies bedeutet, dass es innerhalb des Speicherintervalls abgeschlossen wird, das den ursprünglichen Slice-Daten entspricht, und keine Änderungen in der Speicherplatzstruktur verursacht):
a = []int{1, 2, 3} a = append(a[:0], a[1:]...) // 删除开头1个元素 a = append(a[:0], a[N:]...) // 删除开头N个元素
Sie können auch copy() verwenden Funktion zum Löschen der Anfangselemente:
a = []int{1, 2, 3} a = a[:copy(a, a[1:])] // 删除开头1个元素 a = a[:copy(a, a[N:])] // 删除开头N个元素
Von der mittleren Position löschen
Um das mittlere Element zu löschen, müssen Sie die verbleibenden Elemente als Ganzes verschieben. Sie können es auch mit „Anhängen“ oder „Kopieren“ an Ort und Stelle vervollständigen:
a = []int{1, 2, 3, ...} a = append(a[:i], a[i+1:]...) // 删除中间1个元素 a = append(a[:i], a[i+N:]...) // 删除中间N个元素 a = a[:i+copy(a[i:], a[i+1:])] // 删除中间1个元素 a = a[:i+copy(a[i:], a[i+N:])] // 删除中间N个元素
Löschen vom Ende
a = []int{1, 2, 3} a = a[:len(a)-1] // 删除尾部1个元素 a = a[:len(a)-N] // 删除尾部N个元素
Das Löschen der Anfangselemente und das Löschen der Schwanzelemente können beide in Betracht gezogen werden. Es handelt sich um einen Sonderfall des Löschens mittlerer Elemente. Schauen wir uns ein Beispiel an.
【Beispiel】Löschen Sie das Element an der angegebenen Position des Slice.
package main import "fmt" func main() { seq := []string{"a", "b", "c", "d", "e"} // 指定删除位置 index := 2 // 查看删除位置之前的元素和之后的元素 fmt.Println(seq[:index], seq[index+1:]) // 将删除点前后的元素连接起来 seq = append(seq[:index], seq[index+1:]...) fmt.Println(seq) }
Code-Ausgabeergebnis:
[a b] [d e] [a b d e]
Die Codebeschreibung lautet wie folgt:
Zeile 1 deklariert einen Integer-Slice, um Zeichenfolgen von a bis e zu speichern.
Zeile 4 verwendet zur Vereinfachung der Demonstration und Erklärung die Indexvariable, um die Position des zu löschenden Elements zu speichern.
Zeile 7, seq[:index] repräsentiert die erste Hälfte des gelöschten Elements, der Wert ist [1 2], seq[index+1:] repräsentiert die zweite Hälfte des gelöschten Elements, der Wert ist [4 5].
Zeile 10: Verwenden Sie die Funktion append(), um die beiden Slices zu verbinden.
Zeile 12, Ausgabe des neuen verbundenen Slice. Zu diesem Zeitpunkt wurde das Element mit Index 2 gelöscht.
Der Kern des Löschens von Slice-Elementen in der Go-Sprache besteht darin, das gelöschte Element als Trennpunkt zu verwenden, um die Erinnerung an die beiden Teile vorher und nachher wieder zu verbinden.
Empfohlenes Lernen: Golang-Tutorial
Das obige ist der detaillierte Inhalt vonSo löschen Sie Elemente aus einem Slice in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!