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

E0308 — عدم تطابق نوع Result

تُعيد الدالة Result بنوع Ok أو Err خاطئ.

rustcargo

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

نوع القيمة المُعادة هو Result<T, E> لكن القيمة المُعادة فعليًا تملك نوع T أو E مختلفًا. قد يحوّل عامل ? بين أنواع أخطاء غير متوافقة.

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

تأكد من تطابق أنواع Ok و Err مع توقيع الدالة. نفّذ From<ErrorType> لنوع الخطأ الخاص بك لتفعيل تحويل عامل ?. استخدم .map_err() لتحويل أنواع الأخطاء. استخدم حزمة مثل anyhow أو thiserror لمعالجة الأخطاء بشكل مريح.

مثال

fn foo() -> Result<(), String> {
  Ok(42) // expected ()
}
التوثيق الرسمي

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