go 数组值 是否存在
时间: 2023-03-05 20:33:06 浏览: 79
要检查 Go 中的数组中是否存在特定的值,您可以使用以下方法:
1. 使用循环遍历数组并比较每个元素:
```
func isInArray(arr [5]int, val int) bool {
for _, item := range arr {
if item == val {
return true
}
}
return false
}
```
在这个例子中,我们定义了一个名为 `isInArray` 的函数,它采用一个整数类型的数组和一个整数值作为参数。该函数使用循环遍历数组,比较每个元素是否等于给定值。如果找到了一个匹配项,则返回 `true`。如果循环完成后仍未找到匹配项,则返回 `false`。
2. 使用内置的 `sort` 包对数组进行排序,然后使用二分搜索算法查找值:
```
import "sort"
func isInArray(arr [5]int, val int) bool {
sort.Ints(arr[:])
i := sort.SearchInts(arr[:], val)
if i < len(arr) && arr[i] == val {
return true
}
return false
}
```
在这个例子中,我们首先导入了 Go 的 `sort` 包,该包包含了许多有用的排序函数。然后,我们定义了一个名为 `isInArray` 的函数,该函数采用一个整数类型的数组和一个整数值作为参数。该函数使用 `sort.Ints` 函数对数组进行排序,然后使用 `sort.SearchInts` 函数在已排序的数组中查找值。如果找到了一个匹配项,则返回 `true`。如果未找到匹配项,则返回 `false`。
请注意,第二种方法要比第一种方法更高效,因为它利用了 Go 的内置排序和二分搜索算法,而不是在数组中进行线性搜索。
阅读全文