22 lines
491 B
Go
22 lines
491 B
Go
|
package util
|
||
|
|
||
|
func InStringSlice(sl []string, ele string) bool {
|
||
|
slMap := convertStrSlice2Map(sl)
|
||
|
return inMap(slMap, ele)
|
||
|
}
|
||
|
|
||
|
// ConvertStrSlice2Map 将字符串 slice 转为 map[string]struct{}。
|
||
|
func convertStrSlice2Map(sl []string) map[string]struct{} {
|
||
|
set := make(map[string]struct{}, len(sl))
|
||
|
for _, v := range sl {
|
||
|
set[v] = struct{}{}
|
||
|
}
|
||
|
return set
|
||
|
}
|
||
|
|
||
|
// InMap 判断字符串是否在 map 中。
|
||
|
func inMap(m map[string]struct{}, s string) bool {
|
||
|
_, ok := m[s]
|
||
|
return ok
|
||
|
}
|