סיכום – יצירת מבנה ספר
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 26 מתוך 66.
אתגר
קליתקבלו ארבעה קלטים: כותרת של ספר, שם המחבר, שנת פרסום (כמספר שלם) ומספר עמודים (כמספר שלם). הגדירו מבנה Book עם ארבעה שדות: title מסוג String, author מסוג String, year מסוג i32 ו-pages מסוג i32. צרו מופע של המבנה הזה באמצעות ערכי הקלט והדפיסו את פרטי הספר.
דרישות:
- הגדירו מבנה
Bookעם השדות:title: String,author: String,year: i32ו-pages: i32 - קראו את הקלט הראשון בתור כותרת הספר
- קראו את הקלט השני בתור שם המחבר
- קראו את הקלט השלישי והמירו אותו ל-
i32עבור שנת הפרסום - קראו את הקלט הרביעי והמירו אותו ל-
i32עבור מספר העמודים - צרו מופע של המבנה
Bookעם הערכים האלה - הדפיסו את פרטי הספר בדיוק בפורמט שמוצג למטה
קלט:
- שורה ראשונה: כותרת הספר (לדוגמה,
The Rust Programming Language) - שורה שנייה: שם המחבר (לדוגמה,
Steve Klabnik) - שורה שלישית: שנת הפרסום כמספר שלם (לדוגמה,
2018) - שורה רביעית: מספר העמודים כמספר שלם (לדוגמה,
552)
פלט:
- שורה ראשונה:
Book: [title] - שורה שנייה:
Author: [author] - שורה שלישית:
Year: [year] - שורה רביעית:
Pages: [pages]
נסו בעצמכם
use std::io;
// TODO: הגדירו כאן את המבנה Book עם השדות: title, author, year ו-pages
fn main() {
// קראו את שם הספר
let mut title = String::new();
io::stdin().read_line(&mut title).expect("Failed to read line");
let title = title.trim().to_string();
// קראו את שם המחבר
let mut author = String::new();
io::stdin().read_line(&mut author).expect("Failed to read line");
let author = author.trim().to_string();
// קראו את שנת הפרסום
let mut year_input = String::new();
io::stdin().read_line(&mut year_input).expect("Failed to read line");
let year: i32 = year_input.trim().parse().expect("Failed to parse year");
// קראו את מספר העמודים
let mut pages_input = String::new();
io::stdin().read_line(&mut pages_input).expect("Failed to read line");
let pages: i32 = pages_input.trim().parse().expect("Failed to parse pages");
// TODO: צרו מופע של המבנה Book באמצעות ערכי הקלט
// TODO: הדפיסו את פרטי הספר בפורמט הנדרש
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
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 אונליין