Avatar ·

خطأ "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 يتحكم بصرامة في الملكية، لكن