首页 >后端开发 >Golang >如何有效地检查 Go 列表中的价值成员资格?

如何有效地检查 Go 列表中的价值成员资格?

Susan Sarandon
Susan Sarandon原创
2024-12-02 01:08:10956浏览

How Can I Efficiently Check for Value Membership in Go Lists?

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn