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

E0373 — قد تعيش الإغلاقة أطول من المتغير المُلتقَط

تلتقط الإغلاقة مرجعاً لمتغير قد لا يعيش طويلاً بما يكفي.

rustcargo

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

تستعير الإغلاقة متغيراً محلياً، لكنها قد تعيش أطول من نطاق ذلك المتغير. هذا شائع عند تمرير الإغلاقات إلى خيوط التنفيذ أو تخزينها في هياكل البيانات.

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

استخدم الكلمة المفتاحية move لنقل الملكية: move || { ... }. استنسخ المتغير قبل الإغلاقة إن كنت بحاجة للنسخة الأصلية. تأكد من أن البيانات المُلتقَطة تعيش بما يكفي لعمر الإغلاقة.

التوثيق الرسمي

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