1.1 - כלי עבודה והבנת אבחוני המהדר - תרגול
תרגול כלי העבודה ואבחון בעלות¶
צרו פרויקט חדש בשם diagnostic_lab עם מהדורת השפה 2024 ושמרו את גרסת המהדר המלאה. הכניסו לקובץ src/main.rs את התוכנית הבאה:
fn announce(label: String) {
println!("running {label}");
}
fn main() {
let task = String::from("scan");
announce(task);
println!("finished {task}");
}
הריצו את בדיקת המהדר ושמרו את האבחון הראשון. הסבירו בנפרד היכן נוצרת בעלות, היכן היא עוברת והיכן מופיע שימוש שאינו מותר.
כתבו שני תיקונים שונים. בתיקון הראשון הפונקציה קוראת את הטקסט בלי לקחת בעלות עליו. בתיקון השני השאירו את חתימת הפונקציה המקורית וצרו עותק עצמאי במפורש. הסבירו איזה תיקון מתאים יותר לפונקציה הנוכחית, ומתי התיקון האחר יכול להיות מוצדק.
בנו והריצו את הגרסה המתוקנת. אחר כך שנו את ההודעה בקוד המקור והריצו את הבינארי ישירות בלי לבנות שוב. רשמו איזה פלט התקבל ומדוע. סיימו בהרצה דרך Cargo ובדקו שהמקור החדש נלקח בחשבון.
הגישו את שני התיקונים, את גרסת הכלים ואת ההסבר. אין צורך לצלם את כל המסוף; מספיק לשמור את הפקודות והחלק באבחון שמדגים את הבעיה.