首页 > 后端开发 > Golang > Go 是否有与 Python 的'if x in”等效的数组成员资格?

Go 是否有与 Python 的'if x in”等效的数组成员资格?

Susan Sarandon
发布: 2024-12-27 01:04:09
原创
141 人浏览过

Does Go Have an Equivalent to Python's

如何像 Python 中 Go 中的“if x in”构造一样查找数组元素

在 Python 中,您可以轻松检查元素是否存在使用“if x in”构造在数组中。 Go 是否提供了类似的机制来检查数组成员资格,而无需迭代整个数组?

答案

Go 没有直接相当于 Python 的“if x in”构造数组。但是,从 Go 1.18 开始,您可以对切片使用 slices.Contains 函数来实现类似的结果:

if slices.Contains(array, x) {
    // do something
}
登录后复制

Go 1.18 之前的解决方案

在 Go 1.18 之前,没有用于检查数组成员资格的内置运算符。您必须迭代数组并使用如下所示的自定义函数:

func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}
登录后复制

替代方法:地图

为了避免迭代的需要,您可以使用映射而不是数组或切片:

visitedURL := map[string]bool{
    "http://www.google.com": true,
    "https://paypal.com": true,
}
if visitedURL[thisSite] {
    fmt.Println("Already been here.")
}
登录后复制

以上是Go 是否有与 Python 的'if x in”等效的数组成员资格?的详细内容。更多信息请关注PHP中文网其他相关文章!

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