Como iterar sobre Vec<T> obtendo o índice do elemento em Rust?
Olá a todos! Comecei a estudar Rust recentemente e tive um problema ao percorrer um vetor com acesso ao índice do elemento.
Em outras linguagens, como Python ou JavaScript, estou acostumado a escrever algo como `for i, value in enumerate(list)` ou `for (let i = 0; i < arr.length; i++)`. Em Rust, sei que posso simplesmente usar `for value in vec`, mas então perco o índice.
Preciso exibir na tela todos os elementos do vetor junto com suas posições, por exemplo:
```rust
let items = vec!["maçã", "banana", "cereja"];
// Quero obter: "0: maçã", "1: banana", "2: cereja"
```
Tentei fazer assim:
```rust
for i in 0..items.len() {
println!("{}: {}", i, items[i]);
}
```
Isso funciona, mas ouvi dizer que o acesso por índice usando colchetes pode causar pânico se o índice estiver fora dos limites. Embora aqui eu controle o comprimento, não parece muito idiomático para Rust. Além disso, se o vetor for modificado durante a iteração, podem surgir problemas.
Como iterar de forma correta e segura?