סיכום – נקודה הניתנת להדפסה
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Rust של Coddy. שיעור 39 מתוך 61.
אתגר
קלבואו נשלב את כל התכונות הסטנדרטיות שלמדת על ידי יצירת מבנה Point מלא, שאפשר לנפות בו שגיאות, להציג אותו בצורה נאה ולהשוות אותו לשוויון!
תארגן את הקוד שלך בשני קבצים:
point.rs: הגדר מבנה ציבורי בשםPointעם שדות ציבורייםxו-y(שניהם מסוגi32). המבנה Point שלך צריך לתמוך בשלוש יכולות:- הדפסה לצורכי ניפוי שגיאות באמצעות
{:?}. גזור את התכונה הזו באופן אוטומטי - תצוגה ידידותית למשתמש באמצעות
{}בפורמט(x, y): ממש את התכונה באופן ידני באמצעותstd::fmt::Display - השוואת שוויון באמצעות
==: גזור אתPartialEq
- הדפסה לצורכי ניפוי שגיאות באמצעות
main.rs: הוסף את מודול point וצור שני מופעים שלPointבאמצעות הקלטים שסופקו. הדגם את שלוש היכולות על ידי הדפסת הנקודה הראשונה בפורמט ניפוי שגיאות, הדפסת הנקודה השנייה בפורמט תצוגה והשוואה אם שתי הנקודות שוות.
הפלט שלך צריך להציג את שלוש יכולות התכונות בפעולה:
Debug: Point { x: {x1}, y: {y1} }
Display: ({x2}, {y2})
Equal: {true/false}לדוגמה, עבור הקלטים 3, 5, 3, 5:
Debug: Point { x: 3, y: 5 }
Display: (3, 5)
Equal: trueועבור הקלטים 10, 20, 5, 15:
Debug: Point { x: 10, y: 20 }
Display: (5, 15)
Equal: falseתקבל ארבעה קלטים: קואורדינטות ה-x וה-y של הנקודה הראשונה, ולאחר מכן קואורדינטות ה-x וה-y של הנקודה השנייה. נתח כל אחד מהם כ-i32.
נסו בעצמכם
mod point;
use point::Point;
fn main() {
// קראו ארבעה ערכי קלט: x1, y1, x2, y2
let mut input = String::new();
std::io::stdin().read_line(&mut input).expect("Failed to read line");
let x1: i32 = input.trim().parse().expect("Invalid input");
input.clear();
std::io::stdin().read_line(&mut input).expect("Failed to read line");
let y1: i32 = input.trim().parse().expect("Invalid input");
input.clear();
std::io::stdin().read_line(&mut input).expect("Failed to read line");
let x2: i32 = input.trim().parse().expect("Invalid input");
input.clear();
std::io::stdin().read_line(&mut input).expect("Failed to read line");
let y2: i32 = input.trim().parse().expect("Invalid input");
// TODO: צרו שני מופעים של Point באמצעות ערכי הקלט
// TODO: הדפיסו את הנקודה הראשונה בפורמט ניפוי שגיאות {:?}
// פורמט: "Debug: Point { x: ..., y: ... }"
// TODO: הדפיסו את הנקודה השנייה בפורמט תצוגה {}
// פורמט: "Display: (..., ...)"
// TODO: השוו בין שתי הנקודות והדפיסו את התוצאה
// פורמט: "Equal: true" או "Equal: false"
}
כל השיעורים ביחידה תכנות מונחה עצמים
1מתודות והתנהגות
מבוא לבלוקי מימושהפרמטר selfמתודות ניתנות לשינויפונקציות משויכותבלוקי מימוש מרוביםשרשור מתודותסיכום – פעולות מלבן4פרויקט: חיית מחמד וירטואלית
הגדרת חיית המחמדהאכלת חיית המחמדתרגלו בעצמכם: קומפיילר Rust אונליין