Menu
Coddy logo textTech

ביטוי 'if let'

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 4 מתוך 66.

לפעמים צריך לבדוק רק דפוס מסוים אחד, ולא אכפת לך מכל האפשרויות האחרות. כתיבת ביטוי match מלא עם זרוע משמעותית אחת בלבד וזרוע כללית שתופסת את כל השאר, _, עלולה להרגיש מסורבלת. Rust מספקת את if let כחלופה תמציתית יותר למצבים כאלה.

ביטוי ה-if let מאפשר לשלב התאמת תבניות עם לוגיקה מותנית במשפט אחד קריא. הנה התחביר הבסיסי:

if let pattern = value {
    // קוד שירוץ אם pattern תואם
}

לדוגמה, במקום לכתוב match עם זרוע שימושית אחת בלבד:

let number = 5;

match number {
    5 => println!("Found five!"),
    _ => (), // אל תעשה דבר עבור ערכים אחרים
}

אפשר להשתמש ב-if let כדי להפוך את זה לנקי יותר:

let number = 5;

if let 5 = number {
    println!("Found five!");
}

ביטוי if let מבצע את בלוק הקוד רק כשהתבנית תואמת. אם היא לא תואמת, שום דבר לא קורה — אין צורך במקרה מפורש של "else" אלא אם רוצים להוסיף אותו.

challenge icon

אתגר

קל

תקבל מספר כקלט. קרא את הקלט, המר אותו למספר שלם והשתמש בביטוי if let כדי לבדוק אם המספר הוא בדיוק 42. אם הוא תואם, הדפס "The answer!". אם הוא לא תואם, אל תדפיס דבר.

דרישות:

  • השתמש בביטוי if let כדי לבדוק אם המספר שווה ל־42
  • אם המספר הוא 42, הדפס "The answer!"
  • אם המספר הוא כל דבר אחר, אל תדפיס דבר

קלט: מספר שלם יחיד

פלט: הדפס "The answer!" אם המספר הוא 42, אחרת אל תדפיס דבר

נסו בעצמכם

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("Please enter a valid number");
    
    // TODO: כתבו את הקוד שלכם למטה
    // השתמשו ב-if let כדי לבדוק אם number שווה ל-42
    
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Rust אונליין