Heim > Backend-Entwicklung > Golang > Die Methode „Element entfernen' funktioniert in Golang nicht

Die Methode „Element entfernen' funktioniert in Golang nicht

WBOY
Freigeben: 2024-02-09 09:33:18
nach vorne
1082 Leute haben es durchsucht

删除元素方法在 Golang 中不起作用

Der PHP-Editor Banana zeigt Ihnen, wie Sie Elemente in Golang löschen. In Golang ist die Methode zum Löschen von Elementen nicht so einfach wie in anderen Programmiersprachen, aber wir können sie mit einigen Tricks erreichen. In diesem Artikel werden wir verschiedene gängige Methoden untersuchen, die Ihnen dabei helfen, Elemente in Golang einfach zu löschen und die Programmiereffizienz zu verbessern. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, diese Methoden werden Ihnen helfen. Finden wir es gemeinsam heraus!

Frageninhalt

Ich habe einen einfachen Code zum Entfernen von Elementen aus einem Slice:

package main

import "fmt"

func main() {
    values := []string{"1", "2", "3", "4", "5"}
    valuesresult := removeelementbyindex(values2, 0)
    fmt.printf("%v - %v\n", values, valuesresult)
}

func removeelementbyindex[t interface{}](a []t, i int) []t {
    return append(a[:i], a[i+1:]...)
}
Nach dem Login kopieren

Aber die Ausgabe ist

[2 3 4 5 5] - [2 3 4 5]
Nach dem Login kopieren

Aus irgendeinem Grund ändern sich die values, aber ich ändere sie nicht in meiner Methode (vermute ich). Bitte helfen Sie mir, dieses Problem zu lösen values 正在改变,但我没有在我的方法中改变它(我猜)。请帮我解决这个问题

解决方法

您确实更改了原始切片。如果附加操作的结果适合切片的容量,则 append

Problemumgehung

Sie haben das ursprüngliche Slice geändert. Wenn das Ergebnis der Append-Operation in die Kapazität des Slice passt, verwendet die append-Operation das ursprüngliche Slice. 🎜 🎜Wenn Sie die Originalscheibe unverändert benötigen: 🎜
func removeElementByIndex[T interface{}](a []T, i int) []T {
    result := make([]T, len(a)-1)
    copy(result,a[:i])
    copy(result[i:],a[i+1:])
    return result
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDie Methode „Element entfernen' funktioniert in Golang nicht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage