English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
جملة الشرط في لغة Rust تتبع هذا النمط:
fn main() { let number = 3; if number < 5 { else { } println!("الشرط هو false"); } }
في هذا البرنامج هناك جملة شرطية تحت الشروط if، هذه الجملة شائعة جدًا في العديد من اللغات الأخرى، ولكن هناك بعض الاختلافات: أولاً، لا يتطلب تعبير الشرط number < 5 أن يكون محاطًا بالأقواس الصغيرة (لا يتطلب وليس ممنوع); ولكن لا يوجد في Rust قاعدة لا تتطلب استخدام {} مع جملة واحدة، لا يسمح باستخدام جملة واحدة بدلاً من الكتلة. على الرغم من ذلك، يدعم Rust لغة else-if التقليدية:
fn main() { let a = 12; let b; if a > 0 { ب = 1; } else if a < 0 { ب = -1; } else { ب = 0; } println!("ب هو {}", b); }
نتيجة التنفيذ:
ب 1
تعبيرات الشروط في Rust يجب أن تكون نوعية bool، على سبيل المثال، البرنامج التالي خطأ:
fn main() { let number = 3; if number { // خطأ، المتوقع `bool`، العثور على integer rustc(E0308) println!("Yes"); } }
على الرغم من أن تعبيرات الشروط في لغات البرمجة مثل C/C++ تستخدم الأعداد الصحيحة، سواء كانت صحيحة أو زائفة، إلا أن هذه القاعدة ممنوعة في العديد من اللغات التي تعتمد على أمان الكود.
بتذكر ما تعلمته في الفصول السابقة من تعبير جسمي التعبير، نربطه بالعلاقة:
if <condition> { block 1 } else { block 2 }
في هذا النوع من الجملة، { block 1 } و { block 2 } هل يمكن أن يكون تعبير جسمي التعبير؟
الإجابة إيجابية! أي أننا يمكننا استخدام بنية if-else في Rust لتحقيق تأثير تعبير الثلاثي. (A ? B : C) النتيجة:
fn main() { let a = 3; let number = if a > 0 { 1 } else { -1 }; println!("رقمُه {}", number); }
نتيجة التنفيذ:
رقمُه 1
النصيحةيجب أن تكون نوعي جسمي التعبيرين متشابهين! ويجب أن يكون هناك else مع التعبير التالي.