Avatar ·

Como encontrar o índice de um elemento em um array, vector ou slice em Rust?

Olá! Sou novo em Rust e estou tentando resolver uma tarefa simples: encontrar o índice de um elemento em um array. Em outras linguagens (por exemplo, Python), estou acostumado com métodos como `list.index()`, mas em Rust é diferente. Aqui está um exemplo: tenho um array de números e quero encontrar o índice do número `5`. ```rust fn main() { let arr = [1, 3, 5, 7, 9]; let target = 5; // Como encontrar o índice de 5? } ``` Tentei usar `arr.iter().position(|x| x == target)`, mas recebo um erro. Na documentação diz que `position` retorna `Option`, e não entendo como lidar corretamente com esse resultado. Também não tenho certeza se funciona para `Vec` e slices (`&[i32]`). Outra pergunta: o que fazer se o elemento não for encontrado? Em Python, eu obteria uma exceção, mas em Rust, pelo que entendi, é necessário lidar com `None`. Mas como fazer isso de forma elegante e idiomática? Agradeceria exemplos para array, vector e slice. Quero entender como isso funciona em Rust, especialmente considerando o sistema de ownership e borrowing. Desde já, obrigado!