首页 >后端开发 >Golang >如何高效检查 Go 数组中的元素成员资格?

如何高效检查 Go 数组中的元素成员资格?

Susan Sarandon
Susan Sarandon原创
2024-12-31 15:49:09779浏览

How to Efficiently Check for Element Membership in Go Arrays?

检查 Go 中数组的成员资格

在 Go 中,与 Python 不同,没有相当于 Python 的“if x in " 用于检查数组中元素是否存在。

Post Go 1.18 (推荐方法)

从 Go 1.18 开始,您可以使用 slices.Contains 函数来高效检查切片中的成员资格。

if slices.Contains(array, "x") {
    // Do something
}

Go 1.18 之前(替代方法)

如果您使用的是旧版本去吧,你有两个选择:

  1. 迭代搜索:迭代数组并将每个元素与目标值“x”进行比较。这种方法对于大型数组来说效率较低。
func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}
  1. 映射用法:使用键值对将数组转换为映射(字典),其中键是目标值,该值是布尔值。无论数组大小如何,此方法的查找时间都是恒定的。
visitedURL := map[string]bool{
    "http://www.google.com": true,
    "https://paypal.com": true,
}
if visitedURL["thisSite"] {
    fmt.Println("Already been here.")
}

请记住根据数据收集的大小和性质选择适当的方法。

以上是如何高效检查 Go 数组中的元素成员资格?的详细内容。更多信息请关注PHP中文网其他相关文章!

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