找出切片中的元素位置
通用函式庫函數不支援在 Go 中決定切片中元素的位置。 Go 的語言設計缺乏一種簡單的方法來定義適用於任何切片類型的函數。
自訂實作
您可以定義自己的函數,如程式碼範例所示您提供的,要完成此任務:
type intSlice []int func (slice intSlice) pos(value int) int { for p, v := range slice { if v == value { return p } } return -1 }
此函數迭代切片,將每個元素與指定值進行比較。如果找到該值,則返回其位置;否則,返回 -1。
雖然此函數有效,但可以透過使用較短範圍的語法進行較小的改進:
func (slice intSlice) pos(value int) int { for i, v := range slice { if v == value { return i } } return -1 }
位元組切片的替代方法
如果您的切片包含位元組元素,則可以使用bytes.IndexByte 函數來尋找特定位元組值的位置。其文法如下:
func IndexByte(s \[\]byte, c byte) int
以上是如何找到Go Slice中元素的位置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!