Cómo aplicar una función a cada elemento de un vector en Rust (análogo a map)
¡Hola, colegas! Acabo de empezar a aprender Rust, viniendo de Python, y tengo un problema con el procesamiento de vectores.
En Python solía hacer esto:
```python
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers)) # [1, 4, 9, 16]
```
O con list comprehension, que es aún más cómodo.
En Rust escribí un código más o menos así:
```rust
fn main() {
let numbers = vec![1, 2, 3, 4];
// Quiero obtener un nuevo vector con los cuadrados de los números
let squared: Vec = numbers.map(|x| x * x).collect();
println!("{:?}", squared);
}
```
El compilador da un error:
```
error[E0599]: no method named `map` found for struct `Vec` in the current scope
```
Entiendo que Rust no es Python, y aquí todo es más estricto con los tipos. Pero entonces, ¿cómo proceso cada elemento de un vector? He oído hablar de iteradores, pero no termino de entender cómo usarlos. Por favor, indíquenme cómo aplicar correctamente una función a cada elemento para obtener un nuevo vector. Necesito un