首页 > 后端开发 > Golang > 如何在 Go 中高效地检查列表成员资格?

如何在 Go 中高效地检查列表成员资格?

Patricia Arquette
发布: 2024-11-27 16:30:14
原创
183 人浏览过

How Can I Efficiently Check List Membership in Go?

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板