הוספת איברים באמצעות push
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 9 מתוך 66.
לאחר שיש לך וקטור, לרוב תרצה להוסיף לו איברים חדשים. Rust מספקת את המתודה .push() כדי להוסיף איברים לסוף הווקטור. זו אחת הפעולות הנפוצות ביותר שתבצע עם וקטורים.
כך משתמשים ב־.push():
let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);שימו לב למילת המפתח mut — היא חיונית! מכיוון שהוספת איברים משנה את התוכן של הווקטור, יש להכריז על הווקטור כמשתנה. בלי mut, Rust לא תאפשר לכם לשנות את הווקטור.
השיטה .push() תמיד מוסיפה את הרכיב החדש לסוף הווקטור. כל קריאה ל־.push() מגדילה את אורך הווקטור באחד:
let mut fruits = Vec::new();
fruits.push("apple");
fruits.push("banana");
// fruits מכיל כעת ["apple", "banana"]אפשר גם להתחיל עם וקטור שכבר מכיל איברים ולהמשיך להוסיף אליו:
let mut scores = vec![85, 92];
scores.push(78); // scores מכיל כעת [85, 92, 78]אתגר
קליתקבלו שלושה מספרים כקלט, כל אחד בשורה נפרדת. קראו את המספרים, המירו אותם למספרים שלמים והוסיפו אותם לווקטור באמצעות המתודה .push(). לאחר הוספת שלושת המספרים, הדפיסו כל איבר בווקטור בשורה נפרדת.
דרישות:
- צרו וקטור ריק שניתן לשינוי
- קראו שלושה מספרים מהקלט והמירו כל אחד למספר שלם
- השתמשו ב-
.push()כדי להוסיף כל מספר לווקטור - הדפיסו כל איבר בווקטור בשורה נפרדת
קלט: שלושה מספרים שלמים, כל אחד בשורה נפרדת
פלט: הדפיסו כל איבר בווקטור בשורה נפרדת
נסו בעצמכם
use std::io;
fn main() {
// קראו שלושה מספרים מהקלט
let mut input1 = String::new();
io::stdin().read_line(&mut input1).expect("Failed to read line");
let num1: i32 = input1.trim().parse().expect("Invalid input");
let mut input2 = String::new();
io::stdin().read_line(&mut input2).expect("Failed to read line");
let num2: i32 = input2.trim().parse().expect("Invalid input");
let mut input3 = String::new();
io::stdin().read_line(&mut input3).expect("Failed to read line");
let num3: i32 = input3.trim().parse().expect("Invalid input");
// 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 אונליין