有没有类似于slice.contains(object)Go 中的方法而不必搜索切片中的每个元素的东西?
slice.contains(object)
Mostafa 已经指出这样的方法编写起来很简单,并且 mkb 给了您使用 sort 包中的二进制搜索的提示。但是,如果您要进行大量此类包含检查,您也可以考虑使用地图代替。
使用value, ok := yourmap[key]习语检查特定的映射键是否存在是微不足道的。由于您对该值不感兴趣,您还可以创建一个map[string]struct{}例如。struct{}在这里使用空的优点是不需要任何额外的空间,并且 Go 的内部映射类型针对这种值进行了优化。因此,map[string] struct{}是围棋世界中集合的流行选择。
value, ok := yourmap[key]
map[string]struct{}
struct{}
map[string] struct{}