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
Linda HamiltonOriginal
2024-12-20 00:25:09603Durchsuche

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
}

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
}

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

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!

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