Menu
Coddy logo textTech

הוראת Match

חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 26 מתוך 75.

ביטוי ההתאמה מאפשר לך להשוות ערך לסדרה של תבניות ולהריץ קוד בהתאם לתבנית שמתאימה.

הנה המבנה הבסיסי של ביטוי match:

match variable {
	pattern1 => expression1,
	pattern2 => expression2,
	// ... תבניות נוספות
	_ => default_expression,
}

אחרי מילת המפתח match מופיע הערך שברצונך לבדוק.

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

הקו התחתון _ הוא מקרה ברירת המחדל שמתאים לכל דבר שלא התאים לדפוסים אחרים.

הנה דוגמה:

let day = 3;
let day_name = match day {
	1 => "Monday",
	2 => "Tuesday",
	3 => "Wednesday",
	// ... תבניות נוספות,
	_ => "Invalid day",
};

לכמה שורות קוד בזרוע, השתמשו בבלוק:

let day = 3;
let day_name = match day {
	1 => {
		println!("First day of the week!");
		"Monday"
	},
	2 => "Tuesday",
	// ... מקרים אחרים
	_ => "Invalid day",
};

אפשר להתאים כמה תבניות באמצעות |:

let day = 3;
let day_type = match day {
	1 | 2 | 3 | 4 | 5 => "Weekday",
	6 | 7 => "Weekend",
	_ => "Invalid day",
};

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

challenge icon

אתגר

מתחילים

צרו תוכנית שמקבלת מספר של חודש (1 עבור ינואר, 2 עבור פברואר וכו׳) ומדפיסה את העונה שאליה הוא שייך. השתמשו במשפט match לצורך הלוגיקה.

העונות והחודשים המתאימים להן הם:

  • חורף: דצמבר (12), ינואר (1), פברואר (2)
  • אביב: מרץ (3), אפריל (4), מאי (5)
  • קיץ: יוני (6), יולי (7), אוגוסט (8)
  • סתיו: ספטמבר (9), אוקטובר (10), נובמבר (11)

נסו בעצמכם

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let month: i32 = input.trim().parse().unwrap();
    // כתבו את הקוד שלכם למטה
    let season = 

    // אל תשנו את השורה למטה
    println!("status = {}", season);
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה יסודות

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