Menu
Coddy logo textTech

Özet - Media Player

Coddy'nin Rust Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 34 / 61.

challenge icon

Görev

Kolay

Farklı medya türlerinin trait'ler aracılığıyla ortak bir arayüzü nasıl paylaşabileceğini gösteren basit bir medya oynatıcı sistemi oluşturalım!

Kodunuzu üç dosya halinde düzenleyeceksiniz:

  • playable.rs: Çağrıldığında çıktı yazdıran bir play(&self) metoduna sahip genel bir Playable trait'i tanımlayın. Bu trait, tüm medya türlerinin sahip olacağı ortak yeteneği temsil eder.
  • media.rs: Trait'inizi uygulayan iki genel struct oluşturun:
    • Audio — oynatıldığında Playing audio: {title} yazdıran genel bir title alanına (String) sahip
    • Video — oynatıldığında Playing video: {title} yazdıran genel bir title alanına (String) sahip
  • main.rs: Modüllerinizi bir araya getirin ve sağlanan girdileri kullanarak her iki medya türünden örnekler oluşturun. Aynı trait'in medya türüne bağlı olarak nasıl farklı çıktılar ürettiğini göstermek için her birinde play metodunu çağırın.

Çıktınız şu formatta olmalıdır:

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

Örneğin, Bohemian Rhapsody ve The Matrix girdileriyle:

Playing audio: Bohemian Rhapsody
Playing video: The Matrix

İki girdi alacaksınız: bir ses başlığı ve bir video başlığı.

Kendin dene

mod playable;
mod media;

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

fn main() {
    // Girdiyi oku
    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_title ile bir Audio örneği oluşturun
    
    // TODO: video_title ile bir Video örneği oluşturun
    
    // TODO: Her iki örnek üzerinde play() metodunu çağırın
}

Object Oriented Programming bölümündeki tüm dersler