Avatar ·

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!