خطأ "cannot move out of index of" في Rust: ما يعنيه وكيفية إصلاحه؟
مرحباً! بدأت تعلم Rust وواجهت خطأ غير مفهوم أثناء العمل مع vector. لدي struct `User`، وأحاول استخراج عنصر من vector باستخدام index لتمريره إلى دالة تأخذ الملكية. إليك الكود الخاص بي:
```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]; // خطأ: cannot move out of index of `Vec`
process_user(first_user);
}
```
المترجم ينتج: `error[E0507]: cannot move out of index of 'Vec'`. أفهم أن Rust يتحكم بصرامة في الملكية، لكن