Menu
CoddyTech

המרת מחרוזות למספרים

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

אחד השימושים הנפוצים ביותר של Result בעולם האמיתי הוא המרת מחרוזות למספרים. ב-Rust עושים זאת באמצעות המתודה .parse(), שממחישה היטב מדוע Result קיים — משום שפענוח עלול להיכשל.

השיטה .parse() מנסה להמיר מחרוזת למספר, אבל לא כל מחרוזת מייצגת מספר תקין. לדוגמה, את "42" אפשר לנתח למספר 42, אבל אי אפשר להמיר את "hello" למספר כלשהו:

let valid_number = "42";
let invalid_number = "hello";

let result1: Result = valid_number.parse();
let result2: Result = invalid_number.parse();

כשהניתוח מצליח, .parse() מחזירה Ok(number) שמכילה את הערך שהומר. כשהוא נכשל, היא מחזירה Err(error) עם מידע על הסיבה לכישלון הניתוח. כך נדרש ממך לטפל במפורש בשתי האפשרויות, וכך נמנע מהתוכנית שלך לקרוס כשמתקבל קלט לא תקין.

אפשר לטפל בתוצאת הניתוח באמצעות כל אחת מטכניקות Result שלמדת — match לטיפול מפורש, unwrap() אם ברור לך שהפעולה תצליח, או האופרטור ? כדי להעביר שגיאות הלאה.

challenge icon

אתגר

קל
כתוב פונקציה parse_to_integer שמקבלת מחרוזת input ומחזירה את הערך השלם שפוענח. אם אי אפשר לפענח את המחרוזת למספר שלם תקין, החזר 0 כערך ברירת מחדל.

השתמש בשיטה .parse() כדי להמיר את המחרוזת ל-i32, וטפל ב-Result באופן מתאים כדי לספק ערך החזרה בטוח.

פרמטרים:

  • input (String): המחרוזת שיש לפענח למספר שלם

ערך מוחזר: המספר השלם שפוענח אם הפעולה הצליחה, או 0 אם הפענוח נכשל (i32)

נסו בעצמכם

fn parse_to_integer(input: String) -> i32 {
    // כתבו כאן קוד
}
quiz iconבחנו את עצמכם

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

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

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