התאמה למספר ערכים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 2 מתוך 66.
לפעמים צריך להתאים כמה ערכים שונים שכולם אמורים להפעיל את אותו קוד. במקום לכתוב זרועות נפרדות לכל ערך, Rust מאפשרת לשלב כמה תבניות בזרוע אחת באמצעות האופרטור | (או).
כך אפשר להתאים כמה ערכים בזרוע אחת:
let month = 12;
match month {
12 | 1 | 2 => println!("Winter"),
3 | 4 | 5 => println!("Spring"),
6 | 7 | 8 => println!("Summer"),
9 | 10 | 11 => println!("Fall"),
_ => println!("Invalid month"),
}האופרטור | פועל כמו "או" בעברית — אם הערך תואם לאחת מהתבניות המופרדות באמצעות |, הזרוע הזו תתבצע. כך הקוד שלך נעשה נקי הרבה יותר מאשר כשיש זרועות נפרדות שכולן עושות את אותו הדבר.
אתגר
קלתקבלו מספר יום (1-7) כקלט, המייצג יום בשבוע. קראו את הקלט, המירו אותו למספר שלם, והשתמשו בביטוי match עם האופרטור | כדי להדפיס אם מדובר ביום חול או בסוף שבוע.
דרישות:
- אם היום הוא
1,2,3,4או5, הדפיסו"Weekday" - אם היום הוא
6או7, הדפיסו"Weekend" - עבור כל מספר אחר, הדפיסו
"Invalid day"
קלט: מספר שלם יחיד המייצג את מספר היום
פלט: הדפיסו "Weekday", "Weekend" או "Invalid day"
נסו בעצמכם
use std::io;
fn main() {
// קראו את הקלט
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let day: i32 = input.trim().parse().expect("Please enter a number");
// TODO: כתבו את הקוד שלכם למטה באמצעות ביטוי match עם האופרטור |
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1זרימת בקרה מתקדמת
ביטוי 'match'התאמה למספר ערכיםהתאמה לטווחיםביטוי 'if let'לולאות כביטוייםסיכום – מנתח פקודות פשוט4קיבוץ נתונים באמצעות מבנים
מהו מבנה?סקירה כללית על מבניםגישה לשדות במבנהמבנים הניתנים לשינוימבנים כפרמטרים של פונקציהמבני טופלסיכום – יצירת מבנה ספר7טיפול בשגיאות באמצעות 'Result'
מהו 'Result'?שימוש ב-'match' עם 'Result'is_ok() ו-is_err()קיצורי דרך: unwrap ו-expectאופרטור סימן השאלה '?'המרת מחרוזות למספריםסיכום - פונקציית חילוק בטוחה10Closures ופונקציות אנונימיות
מהו Closure?הגדרת Closure פשוטClosures עם פרמטריםלכידת הסביבהסיכום – Closure פשוט לחיבור2מבוא לווקטורים
מהו וקטור?יצירת וקטורהוספת איברים באמצעות pushגישה לאיברי וקטורמעבר על וקטורמעבר ניתן לשינויהסרת איבריםסיכום – מעקב בסיסי אחר ניקוד5זוגות מפתח-ערך באמצעות מפות גיבוב
מהי מפת גיבוב?יצירת מפת גיבובהוספת זוגות מפתח-ערךגישה לערכיםמעבר על מפת גיבובעדכון ערךהסרת זוגסיכום – מונה מיליםתרגלו בעצמכם: קומפיילר Rust אונליין