請看下面的例子:sort.SearchInts奇怪的工作或我失去了一些東西
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
}