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!