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