考虑以下示例:
package main
import (
"fmt"
"sort"
)
func main() {
var n int
var a sort.IntSlice
a = append(a, 23)
a = append(a, 3)
a = append(a, 10)
sort.Sort(a)
fmt.Println(a)
n = sort.SearchInts(a, 1)
fmt.Println(n)
n = sort.SearchInts(a, 3)
fmt.Println(n)
}
http://play.golang.org/p/wo4r43Zghv
结果是:
[3 10 23]
0
0
当第一个元素和不存在的元素都返回 0 作为索引时,我应该如何知道切片中是否存在数字?
更新 请注意,索引也可以大于切片的长度,因此查找切片中是否存在元素的正确方法是:
num := 1
n = sort.SearchInts(a, num)
if n < len(a) && a[n] == num {
// found
}