首頁 >後端開發 >Golang >如何有效率地檢查 Go 陣列中的元素成員資格?

如何有效率地檢查 Go 陣列中的元素成員資格?

Susan Sarandon
Susan Sarandon原創
2024-12-31 15:49:09779瀏覽

How to Efficiently Check for Element Membership in Go Arrays?

在Go 中檢查數組中的成員資格

在Go 中,與Python 不同,沒有相當於Python 的「if x in " 用於檢查數組中元素是否存在。

Post Go 1.18 (建議方法)

從 Go 1.18 開始,您可以使用 slices.Contains 函數來有效檢查切片中的成員資格。

if slices.Contains(array, "x") {
    // Do something
}

Go 1.18 之前(替代方法)

如果您使用的是舊版本去吧,你有兩個選擇:

  1. 迭代搜尋:迭代陣列並將每個元素與目標值「x」進行比較。這種方法對於大型陣列來說效率較低。
func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}
  1. 映射用法:使用鍵值對將陣列轉換為映射(字典),其中鍵是目標值,該值是布林值。無論數組大小如何,此方法的查找時間都是恆定的。
visitedURL := map[string]bool{
    "http://www.google.com": true,
    "https://paypal.com": true,
}
if visitedURL["thisSite"] {
    fmt.Println("Already been here.")
}

請記住根據資料收集的大小和性質選擇適當的方法。

以上是如何有效率地檢查 Go 陣列中的元素成員資格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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