¿Cómo se determina la posición de un elemento presente en un corte?
Necesito algo como lo siguiente:
type intSlice []int
func (slice intSlice) pos(value int) int {
for p, v := range slice {
if (v == value) {
return p
}
}
return -1
}
Respuestas:
Lo sentimos, no hay una función de biblioteca genérica para hacer esto. Go no tiene una forma sencilla de escribir una función que pueda operar en cualquier segmento.
Tu función funciona, aunque sería un poco mejor si la escribieras usando
range
.Si tiene un segmento de bytes, hay bytes.IndexByte .
fuente
if element in collection: do_something()
Puede crear una función genérica en forma idiomática:
Y uso:
fuente
-1
por un error sea idiomático, debería usar devolución múltiple en su lugar. (Soy nuevo en golang, pero eso es lo que he leído)Podrías escribir una función;
Esto devuelve el índice de un carácter / cadena si coincide con el elemento. Si no se encuentra, devuelve -1.
fuente
No hay función de biblioteca para eso. Tienes que codificar por tu cuenta.
fuente
fuente
Otra opción es ordenar la porción usando el paquete de clasificación y luego buscar lo que está buscando:
huellas dactilares
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.
fuente
for p, v := range ...
yif
. Solo quería señalar la opción.