参考网址
blog.csdn.net/K346K346/ar…
问题
如何判断元素是否在切片中,Golang并没有提供直接的库函数来判断,最容易想到的实现便是通过遍历来判断。
遍历查询
以字符串切片为例,判断字符串切片中是否包含某个字符串。
func InSlice(items []string, item string) bool {
for _, eachItem := range items {
if eachItem == item {
return true
}
}
return false
}
map查询
先将slice转为 map,通过查询 map 来快速查看元素是否在 slice 中。
func ConvertStrSlice2Map(sl []string) map[string]struct{} {
set := make(map[string]struct{}, len(sl))
for _, v := range sl {
set[v] = struct{}{}
}
return set
}
func InMap(m map[string]struct{}, s string) bool {
_, ok := m[s]
return ok
}