首页 >后端开发 >Golang >如何高效检查 Go Slices 和 Maps 中的成员资格?

如何高效检查 Go Slices 和 Maps 中的成员资格?

Linda Hamilton
Linda Hamilton原创
2024-12-13 20:16:15164浏览

How to Efficiently Check for Membership in Go Slices and Maps?

Go 中有效的“if x in”语法:与 Python 构造的比较

Go 本身并不提供“if x in”构造与Python类似。然而,有一些有效的技术可以为数组或切片实现相同的功能,并使用映射来进行更有效的成员资格检查。

对于数组和切片

在 Go 中1.18及更高版本,切片提供了 Contains 功能,可以方便地检查成员资格:

if contains.Contains(array, "x") {
  // Perform actions
}

之前Go 1.18 中没有用于数组或切片成员资格检查的内置运算符。可以实现自定义函数:

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

对于地图

地图通过存储键值对提供更高效的成员资格检查。要检查地图中是否存在元素,请使用以下语法:

if visitedURL[thisSite] {
    // Perform actions
}

其中visitedURL是一个地图,其键代表元素,值代表其存在(例如,对于现有元素为true)。

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

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