Heim >Backend-Entwicklung >Golang >Wie kann ich die Position eines Elements in einem Go-Slice effizient finden?

Wie kann ich die Position eines Elements in einem Go-Slice effizient finden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-23 16:19:10304Durchsuche

How Can I Efficiently Find the Position of an Element in a Go Slice?

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!

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