Error "cannot move out of index of" en Rust: qué significa y cómo solucionarlo
¡Hola! Empecé a aprender Rust y me encontré con un error confuso al trabajar con un vector. Tengo una estructura `User` y estoy intentando extraer un elemento del vector por índice para pasarlo a una función que toma ownership. Aquí está mi código:
```rust
struct User {
name: String,
age: u32,
}
fn process_user(user: User) {
println!("Processing user: {}", user.name);
}
fn main() {
let mut users = vec![
User { name: "Alice".to_string(), age: 30 },
User { name: "Bob".to_string(), age: 25 },
];
let first_user = users[0]; // Error: cannot move out of index of `Vec`
process_user(first_user);
}
```
El compilador muestra: `error[E0507]: cannot move out of index of 'Vec'`. Entiendo que Rust controla estrictamente la propiedad, pero ¿por qué no puedo simplemente tomar un elemento del vector? En otros lenguajes (Python, Java) esto funciona sin problemas. ¿Qué estoy haciendo mal? ¿Cómo extraer correctamente un elemento del vector si necesito pasarlo a una función?