Menu
Coddy logo textTech

גישה לאיברי וקטור

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 10 מתוך 66.

ברגע שיש לך וקטור עם איברים, תצטרך לגשת לערכים בודדים. Rust מספקת שתי גישות שונות לקבלת איברים מתוך וקטור, ולכל אחת מהן יתרונות וחסרונות מבחינת נוחות ובטיחות.

השיטה הראשונה משתמשת בתחביר אינדקס עם סוגריים מרובעים, בדומה למערכים:

let numbers = vec![10, 20, 30, 40];
let first = numbers[0]; // מקבל 10
let third = numbers[2]; // מקבל 30

אף שהתחביר הזה מוכר ותמציתי, יש בו סיכון משמעותי: אם תנסה לגשת לאינדקס שלא קיים, התוכנית שלך תיכנס למצב בהלה ותקרוס:

let numbers = vec![10, 20, 30];
let invalid = numbers[5]; // זה יגרום לפאניקה!

השיטה השנייה משתמשת בשיטה .get(), שמספקת גישה בטוחה:

let numbers = vec![10, 20, 30, 40];
let first = numbers.get(0); // מחזיר Some(10)
let invalid = numbers.get(5); // מחזיר None

המתודה .get() מחזירה Option — או Some(value) אם האינדקס קיים, או None אם לא. כך עליך לטפל באפשרות שהאיבר לא קיים, מה שמונע קריסות והופך את הקוד שלך לעמיד יותר.

challenge icon

אתגר

קל
כתבו פונקציה get_element_at שמקבלת וקטור numbers ואינדקס idx, ומחזירה את האיבר שבאינדקס הזה באמצעות גישה בטוחה.

השתמשו בשיטה .get() כדי לגשת לאיבר בבטחה. אם האינדקס קיים, החזירו את הערך. אם האינדקס אינו קיים, החזירו -1 כערך ברירת מחדל.

פרמטרים:

  • numbers (Vec<i32>): הווקטור שאליו יש לגשת
  • idx (i32): האינדקס שיש לאחזר

ערך מוחזר: האיבר שבאינדקס הנתון, או -1 אם האינדקס אינו קיים (i32)

נסו בעצמכם

fn get_element_at(numbers: Vec<i32>, idx: i32) -> i32 {
    // כתבו כאן קוד
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Rust אונליין