首頁 > 後端開發 > Golang > 如何有效率地檢查 Go Slices 和 Maps 中的成員資格?

如何有效率地檢查 Go Slices 和 Maps 中的成員資格?

Linda Hamilton
發布: 2024-12-13 20:16:15
原創
162 人瀏覽過

How to Efficiently Check for Membership in Go Slices and Maps?

Go 中有效的“if x in”語法:與Python 構造的比較

Go 本身並沒有提供“if x in”構造與Python類似。然而,有一些有效的技術可以為數組或切片實現相同的功能,並使用映射來進行更有效的成員資格檢查。

對於數組和切片

在Go 中1.18及更高版本,切片提供了Contains 功能,可以方便地檢查成員資格:

if contains.Contains(array, "x") {
  // Perform actions
}
登入後複製

先前Go 1.18 中沒有用於陣列或切片成員資格檢查的內建運算子。可實現自訂函數:

func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}
登入後複製

對於地圖

地圖透過儲存鍵值對提供更有效率的成員資格檢查。若要檢查地圖中是否存在元素,請使用下列語法:

if visitedURL[thisSite] {
    // Perform actions
}
登入後複製

其中visitedURL為地圖,其鍵代表元素,數值代表其存在(例如,現有元素為true)。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板