מהו 'Result'?
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Rust של Coddy. שיעור 42 מתוך 66.
בעוד Option מטפל בהיעדר ערכים, Rust מספקת enum נוסף לתרחיש שונה אך חשוב לא פחות: פעולות שעלולות להיכשל. הכירו את Result<T, E> — הכלי העיקרי של Rust לטיפול בשגיאות שניתן להתאושש מהן.
ל-enum Result יש שתי אפשרויות שמייצגות את התוצאה של פעולה:
enum Result<T, E> {
Ok(T), // הצלחה - מכיל את התוצאה שהתקבלה בהצלחה
Err(E), // כישלון - מכיל מידע על השגיאה
}כאשר פעולה מצליחה, היא מחזירה Ok(value) שמכיל את התוצאה שהתקבלה בהצלחה. כאשר היא נכשלת, היא מחזירה Err(error) שמכיל מידע על מה השתבש. הטיפול המפורש הזה במקרי הצלחה וכישלון הופך תוכניות Rust לאמינות וצפויות יותר.
תיתקלו ב-Result בכל מקום ב-Rust — מפעולות קבצים שעלולות להיכשל בגלל קבצים חסרים, דרך בקשות רשת שעלולות להסתיים בחריגה ממגבלת הזמן, ועד פעולות ניתוח שעלולות לקבל קלט לא תקין. בניגוד לשפות שמשתמשות בחריגות, Rust מחייבת אתכם להכיר בכך שפעולות עלולות להיכשל ולטפל במפורש בשתי התוצאות האפשריות.
נסו בעצמכם
השיעור הזה לא כולל אתגר קוד.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
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 אונליין