Menu
Coddy logo textTech

Zusammenfassung – Media Player

Teil des Abschnitts Object Oriented Programming der Rust-Journey von Coddy — Lektion 34 von 61.

challenge icon

Aufgabe

Einfach

Lassen Sie uns ein einfaches Media-Player-System bauen, das zeigt, wie verschiedene Medientypen eine gemeinsame Schnittstelle durch Traits teilen können!

Sie werden Ihren Code über drei Dateien organisieren:

  • playable.rs: Definieren Sie einen öffentlichen Playable-Trait mit einer play(&self)-Methode, die bei Aufruf eine Ausgabe ausgibt. Dieser Trait repräsentiert die gemeinsame Fähigkeit, die alle Medientypen haben werden.
  • media.rs: Erstellen Sie zwei öffentliche Structs, die Ihren Trait implementieren:
    • Audio — mit einem öffentlichen title-Feld (String), das Playing audio: {title} ausgibt, wenn es abgespielt wird
    • Video — mit einem öffentlichen title-Feld (String), das Playing video: {title} ausgibt, wenn es abgespielt wird
  • main.rs: Führen Sie Ihre Module zusammen und erstellen Sie Instanzen beider Medientypen unter Verwendung der bereitgestellten Eingaben. Rufen Sie die play-Methode für jedes auf, um zu demonstrieren, wie derselbe Trait je nach Medientyp unterschiedliche Ausgaben erzeugt.

Ihre Ausgabe sollte diesem Format folgen:

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

Zum Beispiel mit den Eingaben Bohemian Rhapsody und The Matrix:

Playing audio: Bohemian Rhapsody
Playing video: The Matrix

Sie erhalten 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() für beide Instanzen auf
}

Alle Lektionen in Object Oriented Programming