Mostafa 已经 指出 这样的方法编写起来很简单,并且 mkb 提示您使用 sort 包中的二进制搜索。但是,如果您要进行大量此类包含检查,您也可以考虑改用地图。 使用 value, ok := yourmap[key] 成语检查特定映射键是否存在是微不足道的。由于您对该值不感兴趣,您还可以创建一个 map[string]struct{} 例如。使用空的 struct{} 的优点是它不需要任何额外的空间,并且 Go 的内部映射类型针对这种值进行了优化。因此, map[string] struct{} 是围棋世界中集合的流行选择。 原文由 tux21b 发布,翻译遵循 CC BY-SA 4.0 许可协议
不,这样的方法不存在,但写起来很简单: func contains(s []int, e int) bool { for _, a := range s { if a == e { return true } } return false } 如果查找是您代码的重要组成部分,您可以使用地图,但地图也有成本。 原文由 Mostafa 发布,翻译遵循 CC BY-SA 3.0 许可协议
Mostafa 已经 指出 这样的方法编写起来很简单,并且 mkb 提示您使用 sort 包中的二进制搜索。但是,如果您要进行大量此类包含检查,您也可以考虑改用地图。
使用
value, ok := yourmap[key]
成语检查特定映射键是否存在是微不足道的。由于您对该值不感兴趣,您还可以创建一个map[string]struct{}
例如。使用空的struct{}
的优点是它不需要任何额外的空间,并且 Go 的内部映射类型针对这种值进行了优化。因此,map[string] struct{}
是围棋世界中集合的流行选择。