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

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

Linda Hamilton
Freigeben: 2024-12-20 00:25:09
Original
603 Leute haben es durchsucht

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

Elementpositionen in Slices finden

Das Bestimmen der Position eines Elements innerhalb eines Slice in Go wird von einer generischen Bibliotheksfunktion nicht unterstützt. Dem Sprachdesign von Go fehlt ein einfacher Ansatz zum Definieren einer Funktion, die auf jeden Slice-Typ anwendbar ist.

Benutzerdefinierte Implementierung

Sie können Ihre eigene Funktion definieren, wie im Codebeispiel gezeigt Sie haben angegeben, um diese Aufgabe zu erfüllen:

type intSlice []int

func (slice intSlice) pos(value int) int {
    for p, v := range slice {
        if v == value {
            return p
        }
    }
    return -1
}
Nach dem Login kopieren

Diese Funktion durchläuft den Slice und vergleicht jedes Element mit dem angegebenen Wert. Wenn der Wert gefunden wird, wird seine Position zurückgegeben. andernfalls wird -1 zurückgegeben.

Obwohl diese Funktion funktionsfähig ist, könnte durch die Verwendung der Syntax mit kürzerem Bereich eine geringfügige Verbesserung erzielt werden:

func (slice intSlice) pos(value int) int {
    for i, v := range slice {
        if v == value {
            return i
        }
    }
    return -1
}
Nach dem Login kopieren

Alternative für Byte-Slices

Wenn Ihr Slice Byte-Elemente enthält, kann die Funktion bytes.IndexByte verwendet werden, um die Position eines bestimmten Byte-Werts zu ermitteln. Die Syntax lautet wie folgt:

func IndexByte(s \[\]byte, c byte) int
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich die Position eines Elements in einem Go-Slice finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage