Menu
Coddy logo textTech

רכיב טקסט

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

challenge icon

אתגר

קל

בהמשך למאפיין Draw שיצרת בשיעור הקודם, נוסיף את רכיב ממשק המשתמש האמיתי הראשון שלנו: TextField. הרכיב הזה ייצג רכיב להצגת טקסט במערכת המסמכים שלנו.

נרחיב את הפרויקט שלך באמצעות קובץ מודול חדש:

  • draw.rs: שמור על המאפיין Draw מהאתגר הקודם.
  • text_field.rs: צור מבנה TextField עם שדה ציבורי content (מסוג String). ממש את המאפיין Draw עבור TextField, כך שקריאה ל-draw() תדפיס את הטקסט בתבנית מסוימת: Text: {content}
  • main.rs: הוסף את שני המודולים וצור מופע של TextField. קרא למתודה draw() שלו כדי לרנדר את הרכיב.

זכור שמודול text_field שלך צריך להשתמש במאפיין Draw מהמודול draw. אפשר לגשת אליו באמצעות crate::draw::Draw, מכיוון ששני המודולים הם חלק מאותו crate.

הקלט הבא יסופק:

  • מחרוזת שמייצגת את התוכן של שדה הטקסט

הפלט שלך צריך להיות בתבנית המדויקת הזאת:

Text: Hello World

נסו בעצמכם

mod draw;
mod text_field;

use draw::Draw;

pub struct Label {
    pub text: String,
}

impl Draw for Label {
    fn draw(&self) {
        println!("{}", self.text);
    }
}

fn main() {
    let mut input = String::new();
    std::io::stdin().read_line(&mut input).expect("Failed to read line");
    let content = input.trim().to_string();

    // TODO: צרו מופע של TextField וקראו עליו ל־draw()
}

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

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