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

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

Linda Hamilton
发布: 2024-12-13 20:16:15
原创
163 人浏览过

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

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