שינוי מערכים
חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 58 מתוך 75.
בנוסף לגישה לאיברים של מערך, אפשר גם לשנות אותם. כדי לשנות איבר מסוים, קודם צריך את mut כדי לאפשר שינוי של מערך, ואז אפשר להקצות לו ערך חדש באמצעות האינדקס שלו.
הנה דוגמה:
let mut my_array = ["apple", "banana", "cherry"];
my_array[1] = "orange";
println!("{}, {}, {}", my_array[0], my_array[1], my_array[2]);פלט:
apple, orange, cherrybanana הוחלף ב־orange.
אתגר
קלצרו תוכנית שמקבלת 3 קלטים:
- הקלט הראשון הוא מחרוזת של ערכים המופרדים בפסיק (לדוגמה
1,2,3,4,5) באורך 5. - הקלט השני הוא אינדקס
- הקלט השלישי הוא איבר חדש
קוד הפתיחה כבר ממיר את המחרוזת המופרדת בפסיקים למערך שניתן לשינוי בשם arr. תוכלו לעבוד איתו ישירות בלי לכתוב קוד המרה.
התוכנית תדפיס מערך ששונה על ידי החלפת האיבר באינדקס שנשמר בקלט השני בערך מהקלט השלישי.
נסו בעצמכם
use std::io;
use std::convert::TryInto;
fn main() {
let mut input_str_arr = String::new();
let mut input_index = String::new();
let mut new_element = String::new();
io::stdin().read_line(&mut input_str_arr).unwrap();
io::stdin().read_line(&mut input_index).unwrap();
io::stdin().read_line(&mut new_element).unwrap();
let new_element = new_element.trim().to_string();
let index: usize = input_index.trim().parse().unwrap();
let mut arr: [String; 5] = input_str_arr.split(',').map(String::from).collect::<Vec<String>>().try_into().unwrap();
// כתבו את הקוד שלכם למטה
// השתמשו ב-arr, ב-index וב-new_element כדי לפתור את האתגר
for i in 0..arr.len() {
print!("{} ", arr[i]);
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר Rust אונליין