golang 判断元素是否在切片中
在 Go 中,可以使用类型为 map[T]bool
的映射来判断切片中是否包含某个元素。
例如,假设你想要判断整型切片 s
中是否包含元素 x
。你可以这样做:
// 声明一个名为 m 的映射,其中键的类型为 int,值的类型为 bool。 m := make(map[int]bool) // 将 s 中的元素添加到映射中。 for _, v := range s { m[v] = true } // 判断 x 是否在 s 中。 if m[x] { fmt.Println(x, "is in s") } else { fmt.Println(x, "is not in s") }
整理之后为
func convertIntSlice2Map(slice []int) map[int]struct{} { set := make(map[int]struct{}, len(slice)) for _, v := range slice { set[v] = struct{}{} } return set } func containerInt(slice []int, element int) bool { m := convertIntSlice2Map(slice) _, ok := m[element] return ok }
一般方法为
Go 语言判断元素列表里是否包含某个元素,通常有两种方法:遍历列表、转为map后判断是否包含key。
本文来自博客园,作者:易先讯,转载请注明原文链接:https://www.cnblogs.com/gongxianjin/p/17171180.html