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

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

Linda Hamilton
Linda Hamilton原創
2024-12-13 20:16:15164瀏覽

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中文網其他相關文章!

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