決定切片內元素的位置
決定切片內元素的位置並不像看起來那麼簡單。這是因為 Go 缺乏用於此目的的通用庫函數。
為了解決這個問題,可以建立如下所示的自訂函數:
type intSlice []int func (slice intSlice) pos(value int) int { for p, v := range slice { if (v == value) { return p } } return -1 }
此函數迭代切片使用範圍並檢查元素的值是否與目標值相符。如果找到匹配項,則傳回索引。
不幸的是,這種方法對於任意切片並不理想。 Go 的型別系統沒有提供一個簡單的機制來讓函數操作不同類型的切片。
對於位元組切片,可以使用 bytes.IndexByte 函數。此函數傳回位元組切片中第一次出現位元組值的索引。
以上是如何有效率地找到Go Slice中元素的位置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!