sort.Search(n int, f func(int) bool) int
sort.Search
是 Go 语言标准库中的一个函数,用于在已经排序的数组或切片中执行二分查找,sort.Search
会查找第一个满足 f(i) == true
的索引位置,即 f(i)
返回 true
的第一个位置。
例如:
dx := sort.Search(len(m.keys), func(i int) bool {
return m.keys[i] >= hash
})
func(i int) bool { return m.keys[i] >= hash }
是一个匿名函数,sort.Search
会在 m.keys
数组中查找第一个满足 m.keys[i] >= hash
条件的位置,此时匿名函数返回true,即 f(i) == true
。
我们再简化一下,查找第一个大于或等于 35 的位置
m.keys = []int{10, 20, 30, 40, 50}
dx := sort.Search(len(m.keys), func(i int) bool {
return m.keys[i] >= 35
})