检查 Go 中列表中的值成员资格
在 Python 中,in 关键字可以方便地检查列表中是否存在某个值。 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") }
使用切片优化
如果您有大量有效值,考虑使用切片将映射值初始化为 true:
for _, v := range []string{"red", "green", "yellow", "blue"} { valid[v] = true }
Shorter Initialization使用常量
或者,您可以创建一个无类型或布尔常量并进一步优化初始化:
const t = true valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}
通过采用这些技术之一,您可以有效地检查一个值是否包含在 Go 中的列表中,提供与 Python 的 in 关键字类似的功能。
以上是如何有效地检查 Go 列表中的价值成员资格?的详细内容。更多信息请关注PHP中文网其他相关文章!