Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ما هو 'Result'؟

جزء من قسم Logic & Flow في رحلة Rust على Coddy — الدرس 42 من 66.

بينما يتعامل Option مع غياب القيم، توفر Rust تعدادًا (enum) آخر لسيناريو مختلف ولكنه لا يقل أهمية: العمليات التي يمكن أن تفشل. تعرف على Result<T, E> - أداة Rust الأساسية للتعامل مع الأخطاء القابلة للاسترداد.

يحتوي التعداد Result على متغيرين يمثلان نتيجة العملية:

enum Result<T, E> {
    Ok(T),    // نجاح - يحتوي على النتيجة الناجحة
    Err(E),   // فشل - يحتوي على معلومات الخطأ
}

عندما تنجح عملية ما، فإنها تعيد Ok(value) يحتوي على النتيجة الناجحة. وعندما تفشل، فإنها تعيد Err(error) يحتوي على معلومات حول الخطأ الذي حدث. هذا التعامل الصريح مع حالات النجاح والفشل يجعل برامج Rust أكثر موثوقية وقابلية للتنبؤ.

ستواجه Result في كل مكان في Rust - من عمليات الملفات التي قد تفشل بسبب ملفات مفقودة، إلى طلبات الشبكة التي قد تنتهي مهلتها، إلى عمليات التحليل التي قد تتلقى مدخلات غير صالحة. وعلى عكس اللغات التي تستخدم الاستثناءات، تجبرك Rust على الإقرار بأن العمليات يمكن أن تفشل والتعامل مع كلا النتيجتين بشكل صريح.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

ورقة مرجعية

يتعامل التعداد Result<T, E> مع العمليات التي قد تفشل:

enum Result<T, E> {
    Ok(T),    // نجاح - يحتوي على النتيجة الناجحة
    Err(E),   // فشل - يحتوي على معلومات الخطأ
}

عندما تنجح العملية، فإنها تعيد Ok(value). وعندما تفشل، فإنها تعيد Err(error).

يُستخدم Result للأخطاء القابلة للاسترداد مثل عمليات الملفات، وطلبات الشبكة، وعمليات التحليل. تتطلب لغة Rust معالجة صريحة لكل من حالتي النجاح والفشل.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow