Menu
Coddy logo textTech

ביטוי 'match'

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

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

הנה התחביר הבסיסי של ביטוי match:

match value {
    pattern1 => code_to_run,
    pattern2 => code_to_run,
    _ => default_code,
}

כל שורה בתוך match נקראת "זרוע". => מפריד בין התבנית לבין הקוד שרץ כשהתבנית הזאת מתאימה. הקו התחתון _ הוא תבנית מיוחדת של תו כללי שמתאימה לכל דבר — היא כמו "תבנית שתופסת הכול" עבור כל ערך שלא מתאים לתבניות האחרות.

הנה דוגמה פשוטה שבודקת מספר:

let number = 2;

match number {
    1 => println!("One"),
    2 => println!("Two"),
    _ => println!("Other"),
}

ב-Rust, ביטויי match חייבים להיות ממצים, כלומר עליהם לטפל בכל הערכים האפשריים. לכן התו הכללי _ חשוב כל כך — הוא מבטיח שכיסית את כל המקרים שלא הותאמה להם התאמה מפורשת.

challenge icon

אתגר

קל
כתבו פונקציה describe_number שמקבלת את num ומחזירה תיאור כמחרוזת בהתאם לערך המספר.

השתמשו בביטוי match כדי להחזיר תיאורים שונים עבור מספרים שונים.

תנאים:

  • אם num הוא 0, החזירו "zero"
  • אם num הוא 1, החזירו "one"
  • אם num הוא 2, החזירו "two"
  • אם num הוא 3, החזירו "three"
  • עבור כל מספר אחר, החזירו "many"

פרמטרים:

  • num (i32): המספר לתיאור

ערך מוחזר: תיאור של המספר כמחרוזת (String)

נסו בעצמכם

fn describe_number(num: i32) -> String {
    // כתבו כאן קוד
}
quiz iconבחנו את עצמכם

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

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

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