Menu
Coddy logo textTech

Powtórzenie — odtwarzacz multimedialny

Część sekcji Programowanie obiektowe ścieżki Rust w Coddy. Lekcja 34 z 61.

challenge icon

Wyzwanie

Łatwy

Zbudujmy prosty system odtwarzacza multimediów, który pokazuje, jak różne typy mediów mogą współdzielić wspólny interfejs za pomocą traitów!

Uporządkujesz kod w trzech plikach:

  • playable.rs: Zdefiniuj publiczny trait Playable z metodą play(&self), która wyświetla wynik po wywołaniu. Ten trait reprezentuje wspólną funkcjonalność wszystkich typów mediów.
  • media.rs: Utwórz dwie publiczne struktury implementujące ten trait:
    • Audio: z publicznym polem title (String), która po odtworzeniu wyświetla Playing audio: {title}
    • Video: z publicznym polem title (String), która po odtworzeniu wyświetla Playing video: {title}
  • main.rs: Połącz moduły i utwórz instancje obu typów mediów, korzystając z podanych danych wejściowych. Wywołaj metodę play dla każdej z nich, aby pokazać, jak ten sam trait generuje różne wyniki w zależności od typu medium.

Wynik powinien mieć następujący format:

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

Na przykład dla danych wejściowych Bohemian Rhapsody i The Matrix:

Playing audio: Bohemian Rhapsody
Playing video: The Matrix

Otrzymasz dwa dane wejściowe: tytuł audio i tytuł wideo.

Spróbuj swoich sił

mod playable;
mod media;

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

fn main() {
    // Wczytaj dane wejściowe
    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: Utwórz instancję Audio z audio_title
    
    // TODO: Utwórz instancję Video z video_title
    
    // TODO: Wywołaj play() na obu instancjach
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Rust online