Como obter uma slice de Vec<T> em Rust: guia completo
Olá a todos! Comecei a estudar Rust e me deparei com um problema ao trabalhar com vetores. Eu tenho um `Vec` e quero obter um subconjunto de seus elementos — ou seja, uma slice. Por exemplo, estou escrevendo um programa para processamento de dados, onde tenho um vetor de números, e preciso trabalhar apenas com os três primeiros elementos ou com um intervalo de 2 a 5.
Tentei diferentes abordagens, mas o compilador está dando erros. Aqui está meu código:
```rust
fn main() {
let numbers = vec![10, 20, 30, 40, 50, 60];
// Quero obter uma slice com índices 1..3 (20, 30, 40)
let slice = numbers[1..4]; // Erro!
println!("{:?}", slice);
}
```
O compilador diz algo sobre os traits `Index` e `Range` — não entendo bem o que isso significa. Também ouvi dizer que há diferença entre `&[T]` e `Vec`, mas como convertê-los corretamente?