Heim >Backend-Entwicklung >Golang >Wie kann ich die Position eines Elements in einem Go-Slice effizient finden?
Bestimmen der Elementposition innerhalb eines Slice
Das Bestimmen der Position eines Elements innerhalb eines Slice ist nicht so einfach, wie es scheint. Dies liegt daran, dass Go für diesen Zweck keine generische Bibliotheksfunktion hat.
Um dieses Problem zu beheben, können benutzerdefinierte Funktionen wie die folgende erstellt werden:
type intSlice []int func (slice intSlice) pos(value int) int { for p, v := range slice { if (v == value) { return p } } return -1 }
Diese Funktion iteriert durch den Slice using range und prüft, ob der Wert des Elements mit dem Zielwert übereinstimmt. Wenn eine Übereinstimmung gefunden wird, wird der Index zurückgegeben.
Leider ist dieser Ansatz für beliebige Slices nicht ideal. Das Typsystem von Go bietet keinen einfachen Mechanismus für Funktionen, um auf Slices verschiedener Typen zu arbeiten.
Speziell für Byte-Slices kann die Funktion bytes.IndexByte verwendet werden. Diese Funktion gibt den Index des ersten Vorkommens eines Bytewerts innerhalb eines Byte-Slices zurück.
Das obige ist der detaillierte Inhalt vonWie kann ich die Position eines Elements in einem Go-Slice effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!