הוספת פריט
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 50 מתוך 66.
אתגר
קליתקבלו שלושה קלטים. הקלט הראשון הוא שם פריט, הקלט השני הוא מחיר הפריט, והקלט השלישי הוא הכמות ההתחלתית במלאי. צרו HashMap לאחסון נתוני המלאי, כאשר המפתח הוא שם הפריט והערך הוא tuple המכיל את המחיר והכמות (f64, i32). הוסיפו את הפריט למלאי והדפיסו הודעת אישור ולאחריה את פרטי המלאי הנוכחיים.
דרישות:
- ייבאו את
HashMapמתוךstd::collections - קראו את הקלט הראשון (שם הפריט) והסירו רווחים לבנים
- קראו את הקלט השני (המחיר) והסירו רווחים לבנים
- נתחו את המחיר ל-
f64 - קראו את הקלט השלישי (הכמות) והסירו רווחים לבנים
- נתחו את הכמות ל-
i32 - צרו
HashMap<String, (f64, i32)>משתנה עבור המלאי - הכניסו את הפריט למלאי, כאשר המחיר והכמות הם tuple
- הדפיסו:
Added [item_name] to inventory - הדפיסו:
Price: $[price] - הדפיסו:
Quantity: [quantity]
קלט:
- שורה ראשונה: שם הפריט (לדוגמה,
Laptop) - שורה שנייה: מחיר כמספר (לדוגמה,
999.99) - שורה שלישית: כמות כמספר (לדוגמה,
15)
פלט:
- שורה ראשונה:
Added [item_name] to inventory - שורה שנייה:
Price: $[price] - שורה שלישית:
Quantity: [quantity]
נסו בעצמכם
use std::collections::HashMap;
use std::io;
fn main() {
// קרא את שם הפריט
let mut item_name = String::new();
io::stdin().read_line(&mut item_name).expect("Failed to read line");
let item_name = item_name.trim().to_string();
// קרא את המחיר
let mut price_input = String::new();
io::stdin().read_line(&mut price_input).expect("Failed to read line");
let price: f64 = price_input.trim().parse().expect("Failed to parse price");
// קרא את הכמות
let mut quantity_input = String::new();
io::stdin().read_line(&mut quantity_input).expect("Failed to read line");
let quantity: i32 = quantity_input.trim().parse().expect("Failed to parse quantity");
// TODO: כתוב את הקוד שלך למטה
// צור HashMap לאחסון המלאי
// הוסף את הפריט למלאי
// הדפס את הודעות האישור
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
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 אונליין