首頁 >後端開發 >Golang >如何有效率地找到Go Slice中元素的位置?

如何有效率地找到Go Slice中元素的位置?

Barbara Streisand
Barbara Streisand原創
2024-12-23 16:19:10304瀏覽

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

決定切片內元素的位置

決定切片內元素的位置並不像看起來那麼簡單。這是因為 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn