首頁  >  文章  >  後端開發  >  如何有效檢查 Go 清單中的值是否存在?

如何有效檢查 Go 清單中的值是否存在?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-25 11:19:11947瀏覽

How Can I Efficiently Check for Value Existence in Go Lists?

使用Map 高效率檢查Go 清單中的值

在Go 中處理清單時,可能會遇到需要確定某個值是否存在的情況在一個列表中。雖然 Python 為此目的提供了方便的「in」關鍵字,但 Go 缺乏直接的等效項。

一種方法是利用 set 習慣用法,將每個值對應到任意整數值。但是,此方法需要指定一個未使用的整數值,這可能會很麻煩。

利用映射進行高效的集合操作

另一個解決方案是使用 map[string ]bool 作為一個集合。將有效值對應到布林值“true”,您可以如下測試成員資格:

valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true}

if valid[x] {
    fmt.Println("found")
}

查詢對應中不存在的鍵時,傳回預設的“false”值,表示不存在.

使用初始化慣用法最佳化程式碼

要簡化初始化過程,請考慮使用一片有效值和一個for-range 迴圈:

for _, v := range []string{"red", "green", "yellow", "blue"} {
    valid[v] = true
}

或者,定義一個布林單字母常數以進行簡潔的初始化:

const t = true
valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}

透過採用這些策略,您可以有效地檢查Go 清單中的值成員資格,無需使用Python“in”關鍵字,同時利用Go 的映射類型實現類似集合的功能。

以上是如何有效檢查 Go 清單中的值是否存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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