Menu
Coddy logo textTech

Zusammenfassung – Media Player

Teil des Abschnitts Objektorientierte Programmierung der Rust-Journey von Coddy. Lektion 34 von 61.

challenge icon

Aufgabe

Einfach

Erstellen wir ein einfaches Mediaplayer-System, das veranschaulicht, wie verschiedene Medientypen über Traits eine gemeinsame Schnittstelle nutzen können!

Du organisierst deinen Code über drei Dateien:

  • playable.rs: Definiere ein öffentliches Playable-Trait mit einer play(&self)-Methode, die bei ihrem Aufruf eine Ausgabe ausgibt. Dieses Trait stellt die gemeinsame Fähigkeit dar, über die alle Medientypen verfügen werden.
  • media.rs: Erstelle zwei öffentliche Structs, die dein Trait implementieren:
    • Audio: mit einem öffentlichen title-Feld (String), das bei der Wiedergabe Playing audio: {title} ausgibt
    • Video: mit einem öffentlichen title-Feld (String), das bei der Wiedergabe Playing video: {title} ausgibt
  • main.rs: Führe deine Module zusammen und erstelle mithilfe der bereitgestellten Eingaben Instanzen beider Medientypen. Rufe für jeden die play-Methode auf, um zu zeigen, wie dasselbe Trait abhängig vom Medientyp unterschiedliche Ausgaben erzeugt.

Deine Ausgabe sollte diesem Format entsprechen:

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

Beispielsweise mit den Eingaben Bohemian Rhapsody und The Matrix:

Playing audio: Bohemian Rhapsody
Playing video: The Matrix

Du erhältst zwei Eingaben: einen Audiotitel und einen Videotitel.

Probier es selbst

mod playable;
mod media;

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

fn main() {
    // Eingabe lesen
    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: Erstelle eine Audio-Instanz mit audio_title
    
    // TODO: Erstelle eine Video-Instanz mit video_title
    
    // TODO: Rufe play() auf beiden Instanzen auf
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Rust-Compiler