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

'is_some()' و 'is_none()'

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

في بعض الأحيان تحتاج إلى التحقق مما إذا كان Option يحتوي على قيمة دون استخراج تلك القيمة فعلياً. توفر لغة Rust طريقتين مريحتين لهذا الغرض: .is_some() و .is_none().

تُرجع كلتا الطريقتين قيمة منطقية (boolean)، مما يجعلهما مثاليين للاستخدام في شروط if:

let maybe_score = Some(85);

if maybe_score.is_some() {
    println!("We have a score!");
}

if maybe_score.is_none() {
    println!("No score available");
}

تُرجع الطريقة .is_some() القيمة true إذا كان الـ Option يحتوي على قيمة Some، و false إذا كان None. أما الطريقة .is_none() فتعمل بطريقة عكسية - حيث تُرجع true لـ None و false لـ Some.

challenge icon

التحدي

سهل

ستتلقى رقماً كمدخل. قم بإنشاء Option<i32> يحتوي على Some(number) إذا كان الرقم موجباً، أو None إذا كان الرقم صفراً أو سالباً. استخدم .is_some() و .is_none() للتحقق من Option وطباعة الرسالة المناسبة.

المتطلبات:

  • اقرأ المدخلات وقم بتحويلها إلى i32
  • قم بإنشاء متغير من نوع Option<i32>:
    • إذا كان الرقم موجباً (أكبر من 0)، قم بتعيين Some(number)
    • إذا كان الرقم صفراً أو سالباً، قم بتعيين None
  • استخدم .is_some() للتحقق مما إذا كان Option يحتوي على قيمة
  • إذا كانت .is_some() تعيد true، اطبع: Positive number detected
  • استخدم .is_none() للتحقق مما إذا كان Option فارغاً
  • إذا كانت .is_none() تعيد true، اطبع: No positive number

المدخلات:

  • عدد صحيح واحد (على سبيل المثال، 42، 0، أو -5)

المخرجات:

  • إذا كان الرقم موجباً: Positive number detected
  • إذا كان الرقم صفراً أو سالباً: No positive number

جرّب بنفسك

use std::io;

fn main() {
    // قراءة المدخلات
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let number: i32 = input.trim().parse().expect("Invalid input");
    
    // TODO: اكتب الكود الخاص بك أدناه
    // بناءً على ما إذا كان الرقم موجباً Option<i32> قم بإنشاء
    
    // وتحقق مما إذا كان يحتوي على قيمة ثم اطبع الرسالة المناسبة Option تحقق من الـ
    
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow

تدرّب بنفسك: مترجم Rust عبر الإنترنت