次の例を考えてみましょう。
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
}