تخطى إلى المحتوى
أخطاء مترجم Rustخطأ
E0502

E0502 — لا يمكن الاستعارة بصورة قابلة للتعديل لوجود استعارة غير قابلة للتعديل

لا يمكن استعارة قيمة بشكل قابل للتعديل طالما أن استعارة غير قابلة للتعديل لا تزال فعّالة.

rustcargo

أسباب هذا الخطأ

يُطبّق Rust قاعدة تمنع وجود مرجع قابل للتعديل ومرجع غير قابل للتعديل لنفس البيانات في الوقت ذاته. الاستعارة غير القابلة للتعديل لا تزال مستخدمة عند محاولة أخذ استعارة قابلة للتعديل.

كيفية الإصلاح

أعد هيكلة الكود بحيث تنتهي الاستعارة غير القابلة للتعديل قبل بدء الاستعارة القابلة للتعديل. انسخ البيانات إذا كنت بحاجة لنسخ مستقلة. استخدم كتلة برمجية لتقييد نطاق الاستعارة غير القابلة للتعديل.

مثال

let mut v = vec![1, 2];
let r = &v[0];
v.push(3);
println!("{}", r);
التوثيق الرسمي

رموز أخطاء ذات صلة