檢查Go 中的清單成員資格:Python「in」關鍵字的替代方案
在Python 中,「in」關鍵字提供了一種方便的方法檢查清單中是否存在某個值的方法。然而,Go 並沒有提供直接的等價物。
用 Map 近似「in」關鍵字
Go 中的一種方法是利用 map[string] bool 作為集合的表示。將有效值儲存為鍵並指派真值,您可以透過檢查對應中是否存在鍵來測試成員身分:
valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true} if valid[x] { fmt.Println("found") } else { fmt.Println("not found") }
利用零值
利用這樣一個事實:當在映射中找不到某個鍵時,將傳回bool (false) 的零值。這允許您省略真值的明確分配,從而簡化初始化:
valid := map[string]bool{"red", "green", "yellow", "blue"} if valid[x] { fmt.Println("found") } else { fmt.Println("not found") }
優化
對於具有大量有效值的場景,請考慮使用用於初始化地圖的for range 循環。這提供了一個緊湊的解決方案:
for _, v := range []string{"red", "green", "yellow", "blue"} { valid[v] = true }
此外,您可以透過定義 const 變數來最佳化程式碼,以避免重複的布林值:
const t = true valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}
以上是如何在 Go 中有效率地檢查清單成員資格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!