Menu
Coddy logo textTech

חזרה — נגן מדיה

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

challenge icon

אתגר

קל

בואו נבנה מערכת פשוטה לנגן מדיה שמדגימה איך סוגי מדיה שונים יכולים לשתף ממשק משותף באמצעות traits!

תארגן את הקוד שלך בשלושה קבצים:

  • playable.rs: הגדר trait ציבורי בשם Playable עם מתודה play(&self) שמדפיסה פלט כשקוראים לה. ה-trait הזה מייצג את היכולת המשותפת שתהיה לכל סוגי המדיה.
  • media.rs: צור שני structs ציבוריים שמממשים את ה-trait שלך:
    • Audio: עם שדה ציבורי title (String) שמדפיס Playing audio: {title} בעת ההפעלה
    • Video: עם שדה ציבורי title (String) שמדפיס Playing video: {title} בעת ההפעלה
  • main.rs: חבר את המודולים שלך וצור מופעים של שני סוגי המדיה באמצעות הקלטים שסופקו. קרא למתודה play בכל אחד מהם כדי להדגים איך אותו trait מפיק פלטים שונים בהתאם לסוג המדיה.

הפלט שלך צריך להיות בפורמט הבא:

Playing audio: {audio_title}
Playing video: {video_title}

לדוגמה, עם הקלטים Bohemian Rhapsody ו-The Matrix:

Playing audio: Bohemian Rhapsody
Playing video: The Matrix

תקבל שני קלטים: כותרת של קטע שמע וכותרת של סרטון.

נסו בעצמכם

mod playable;
mod media;

use media::{Audio, Video};
use playable::Playable;

fn main() {
    // קרא את הקלט
    let mut audio_title = String::new();
    std::io::stdin().read_line(&mut audio_title).expect("Failed to read line");
    let audio_title = audio_title.trim().to_string();
    
    let mut video_title = String::new();
    std::io::stdin().read_line(&mut video_title).expect("Failed to read line");
    let video_title = video_title.trim().to_string();
    
    // TODO: צור מופע של Audio עם audio_title
    
    // TODO: צור מופע של Video עם video_title
    
    // TODO: קרא ל-play() בשני המופעים
}

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

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