nchistov Asked:2023-06-30 16:08:37 +0000 UTC2023-06-30 16:08:37 +0000 UTC 2023-06-30 16:08:37 +0000 UTC Go 语言中如何检查数组是否包含值? 772 我正在学习 GoLang,如何检查数组中是否有值变得很有趣。 有一个函数strings.Contains,但它检查字符串中是否有字符串,而不是数组。 有这个功能吗,还是我需要自己写? массивы 2 个回答 Voted Pak Uula 2023-06-30T16:39:30Z2023-06-30T16:39:30Z 如果数组没有排序,那么有一个函数slices.IndexFunc // искать индекс элемента target idx := slices.IndexFunc(someSlice, func (elt E) { return elt == target }) if idx >= 0 { /* найден */ } 但这是一个非常简单的函数: func IndexFunc[E any](s []E, f func(E) bool) int { for i := range s { if f(s[i]) { return i } } return -1 } 如果数组已排序,则有一个二分搜索函数slices.BinarySearch- 它搜索定义了比较的类型<。一般情况下,会使用比较器搜索已排序的切片slices.BinarySearchFunc Best Answer nchistov 2023-07-01T17:59:29Z2023-07-01T17:59:29Z 该模块slices有一个功能Contains: found := slices.Contains(some_slice, some_value)) foundtrue当some_value它在时变为some_slice,否则false。
如果数组没有排序,那么有一个函数slices.IndexFunc
但这是一个非常简单的函数:
如果数组已排序,则有一个二分搜索函数
slices.BinarySearch- 它搜索定义了比较的类型<。一般情况下,会使用比较器搜索已排序的切片slices.BinarySearchFunc该模块
slices有一个功能Contains:foundtrue当some_value它在时变为some_slice,否则false。