Menu
Coddy logo textTech

מבוא לבלוקי מימוש

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Rust של Coddy. שיעור 1 מתוך 61.

ב-Rust, מבנים מגדירים אילו נתונים טיפוס מכיל, אבל הם לא מגדירים מה הטיפוס יכול לעשות. כדי להקנות למבנה התנהגות, משתמשים בבלוקי מימוש עם מילת המפתח impl.

בלוק מימוש מקשר פונקציות (הנקראות מתודות) למבנה נתונים ספציפי. הנה המבנה הבסיסי:

struct Dog {
    name: String,
    age: u8,
}

impl Dog {
    fn bark(&self) {
        println!("{} says woof!", self.name);
    }
}

הבלוק impl Dog אומר ל-Rust שכל מה שבתוכו שייך למבנה Dog. ההפרדה הזאת שומרת על הגדרת הנתונים שלך נקייה, ובו בזמן מאפשרת לך להוסיף כמה מתודות שצריך בבלוק המימוש.

כדי לקרוא למתודה, השתמשו בתחביר נקודה על מופע:

fn main() {
    let my_dog = Dog {
        name: String::from("Rex"),
        age: 3,
    };
    
    my_dog.bark(); // פלט: Rex אומר הב הב!
}

דפוס זה של הפרדת נתונים (המבנה) מהתנהגות (בלוק ה־impl) הוא יסודי לארגון קוד Rust. בשיעורים הבאים נחקור כיצד מתודות ניגשות לנתוני המבנה באמצעות הפרמטר &self שמופיע בדוגמה שלמעלה.

challenge icon

אתגר

קל

צרו מבנה Cat עם שני שדות: name (String) ו-lives (u8).

הוסיפו בלוק מימוש עבור Cat עם מתודה בשם meow שמקבלת את &self ומדפיסה את שם החתול ואחריו " says meow!".

יתקבלו שני קלטים:

  • השורה הראשונה: שם החתול (String)
  • השורה השנייה: מספר החיים (u8)

צרו מופע של Cat עם הערכים שסופקו וקראו למתודה meow עליו.

תבנית הפלט הצפויה:

{name} says meow!

נסו בעצמכם

use std::io;

// TODO: הגדירו את המבנה Cat עם השדות 'name' (String) ו-'lives' (u8)


// TODO: הוסיפו בלוק מימוש עבור Cat עם המתודה 'meow'


fn main() {
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("Failed to read line");
    let name = name.trim().to_string();
    
    let mut lives_input = String::new();
    io::stdin().read_line(&mut lives_input).expect("Failed to read line");
    let lives: u8 = lives_input.trim().parse().expect("Failed to parse lives");
    
    // TODO: צרו מופע של Cat וקראו למתודה meow
    
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה תכנות מונחה עצמים

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