Otra opción es ordenar la porción usando el paquete de clasificación y luego buscar lo que está buscando:
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)
}
huellas dactilares
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
Esto funciona para los tipos básicos y siempre puede implementar la interfaz de clasificación para su propio tipo si necesita trabajar en una porción de otras cosas. Ver http://golang.org/pkg/sort
Sin embargo, depende de lo que estés haciendo.