在 Python 中,in 关键字可以方便地验证列表中是否存在元素。另一方面,Go 缺乏明确的等价物。本文探讨了在 Go 中实现此类检查的技术。
一种方法涉及使用集合,它将值映射到未使用的整数值。然而,这需要对每个元素进行人工整数规范,并且不被认为是理想的解决方案。
更优雅的方法是利用字符串到布尔值的映射。映射作为一个集合,映射中缺少键值对相当于 false,可以解释为该元素不在列表中。
valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true} if valid[x] { fmt.Println("found") } else { fmt.Println("not found") }
注意:
为了提高大型列表的效率,请考虑使用 for range 循环初始化映射或创建一个无类型常量来优化布尔值作业。
var t = true valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}
以上是如何有效地检查 Go 列表中的值是否存在?的详细内容。更多信息请关注PHP中文网其他相关文章!