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

E0277 — النوع لا ينفّذ Sized

يُستخدم نوع ذو حجم ديناميكي (DST) حيث يُتطلب نوع Sized.

rustcargo

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

الأنواع مثل str و[T] و dyn Trait لا تملك حجمًا معروفًا وقت الترجمة. تتطلب معظم المعاملات العامة Sized افتراضيًا. لا يمكن تخزين أنواع DST مباشرة على المكدس.

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

استخدم Box<dyn Trait> أو &dyn Trait أو &str بدلًا من أنواع DST المجردة. أضف قيد ?Sized إلى المعاملات العامة إذا أردت قبول أنواع DST: fn f<T: ?Sized>(x: &T). استخدم نوعًا ملموسًا ذا حجم محدد.

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

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