חזרה — נגן מדיה
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Rust של Coddy. שיעור 34 מתוך 61.
אתגר
קלבואו נבנה מערכת פשוטה לנגן מדיה שמדגימה איך סוגי מדיה שונים יכולים לשתף ממשק משותף באמצעות 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() בשני המופעים
}
כל השיעורים ביחידה תכנות מונחה עצמים
1מתודות והתנהגות
מבוא לבלוקי מימושהפרמטר selfמתודות ניתנות לשינויפונקציות משויכותבלוקי מימוש מרוביםשרשור מתודותסיכום – פעולות מלבן4פרויקט: חיית מחמד וירטואלית
הגדרת חיית המחמדהאכלת חיית המחמדתרגלו בעצמכם: קומפיילר Rust אונליין