הוראת 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 חייבים להיות ממצים, כלומר עליהם לכסות את כל הערכים האפשריים. המהדר יבדוק זאת עבורך.
אתגר
מתחיליםצרו תוכנית שמקבלת מספר של חודש (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);
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר Rust אונליין