Fehler "cannot move out of index of" in Rust: Was bedeutet er und wie behebt man ihn?
Hallo! Ich habe angefangen, Rust zu lernen, und bin auf einen unverständlichen Fehler beim Arbeiten mit einem Vektor gestoßen. Ich habe eine Struktur `User` und versuche, ein Element aus dem Vektor per Index zu extrahieren, um es an eine Funktion zu übergeben, die Ownership übernimmt. Hier ist mein Code:
```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]; // Fehler: cannot move out of index of `Vec`
process_user(first_user);
}
```
Der Compiler gibt aus: `error[E0507]: cannot move out of index of 'Vec'`. Ich verstehe, dass Rust Ownership streng kontrolliert, aber