Другой вариант - отсортировать фрагмент с помощью пакета сортировки, а затем выполнить поиск того, что вы ищете:
package main
import (
"sort"
"log"
)
var ints = [...]int{74, 59, 238, -784, 9845, 959, 905, 0, 0, 42, 7586, -5467984, 7586}
func main() {
data := ints
a := sort.IntSlice(data[0:])
sort.Sort(a)
pos := sort.SearchInts(a, -784)
log.Println("Sorted: ", a)
log.Println("Found at index ", pos)
}
печатает
2009/11/10 23:00:00 Sorted: [-5467984 -784 0 0 42 59 74 238 905 959 7586 7586 9845]
2009/11/10 23:00:00 Found at index 1
Это работает для основных типов, и вы всегда можете реализовать интерфейс сортировки для своего собственного типа, если вам нужно поработать над частью других вещей. См. Http://golang.org/pkg/sort
Но все зависит от того, что вы делаете.