有没有类似于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{}