Avatar ·

Como aplicar uma função a cada elemento de um vetor em Rust (análogo ao map)?

Olá, colegas! Comecei a estudar Rust recentemente, vim do Python, e tive um problema com processamento de vetores. Em Python, eu costumava fazer assim: ```python numbers = [1, 2, 3, 4] squared = list(map(lambda x: x**2, numbers)) # [1, 4, 9, 16] ``` Ou com list comprehension, que é ainda mais conveniente. Em Rust, escrevi um código mais ou menos assim: ```rust fn main() { let numbers = vec![1, 2, 3, 4]; // Quero obter um novo vetor com os quadrados dos números let squared: Vec = numbers.map(|x| x * x).collect(); println!("{:?}", squared); } ``` O compilador dá um erro: ``` error[E0599]: no method named `map` found for struct `Vec` in the current scope ``` Entendo que Rust não é Python, e aqui tudo é mais rigoroso com tipos. Mas como então processar cada elemento de um vetor? Ouvi falar sobre iteradores, mas não entendo completamente como usá-los. Por favor, me digam como aplicar corretamente uma função a cada elemento para obter um novo vetor? Preciso de um exemplo.