Cómo encontrar el índice de un elemento en un array, vector o slice en Rust?
¡Hola! Soy nuevo en Rust y estoy tratando de resolver una tarea simple: encontrar el índice de un elemento en un array. En otros lenguajes (por ejemplo, Python), estoy acostumbrado a métodos como `list.index()`, pero en Rust es diferente.
Aquí hay un ejemplo: tengo un array de números y quiero encontrar el índice del número `5`.
```rust
fn main() {
let arr = [1, 3, 5, 7, 9];
let target = 5;
// ¿Cómo encontrar el índice de 5?
}
```
He intentado usar `arr.iter().position(|x| x == target)`, pero obtengo un error. En la documentación dice que `position` devuelve `Option`, y no entiendo cómo manejar correctamente este resultado. Tampoco estoy seguro de si funciona para `Vec` y slices (`&[i32]`).
Otra pregunta: ¿qué hacer si el elemento no se encuentra? En Python obtendría una excepción, mientras que en Rust, según tengo entendido, hay que manejar `None`. Pero, ¿cómo hacerlo de manera elegante e idiomática?
Agradecería ejemplos para array, vector y slice. Quiero entender cómo funciona esto en Rust, especialmente teniendo en cuenta el sistema de ownership y borrowing. ¡Gracias de antemano!