检查 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中文网其他相关文章!