Go 切片:缺少的包含方法
在 Go 中,切片本身并没有提供有效检查给定元素是否存在于其中的方法他们。如果需要迭代每个元素来手动搜索,这可能是一个麻烦的操作。
替代方法
虽然可以实现自定义 contains 方法,但它不是普遍推荐。相反,请考虑以下替代方案:
示例:
考虑一个名为单词的字符串切片:
words := []string{"apple", "banana", "cherry"}
使用排序检查“cherry”是否存在package:
i := sort.SearchStrings(words, "cherry") if i < len(words) && words[i] == "cherry" { fmt.Println("cherry found") }
使用映射进行检查:
existsMap := map[string]struct{}{} for _, word := range words { existsMap[word] = struct{}{} } if _, ok := existsMap["cherry"]; ok { fmt.Println("cherry found") }
这些方法提供了高效灵活的机制,用于在 Go 切片中执行包含检查,而不需要专用的 slice.contains 方法.
以上是如何高效检查Go切片中元素是否存在?的详细内容。更多信息请关注PHP中文网其他相关文章!