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