Menu
Coddy logo textTech

Riepilogo - Lettore multimediale

Fa parte della sezione Programmazione orientata agli oggetti del percorso Rust di Coddy. Lezione 34 di 61.

challenge icon

Sfida

Facile

Costruiamo un semplice sistema di riproduzione multimediale che dimostri come diversi tipi di media possano condividere un’interfaccia comune tramite i trait!

Organizzerai il codice in tre file:

  • playable.rs: Definisci un trait pubblico Playable con un metodo play(&self) che stampa un risultato quando viene chiamato. Questo trait rappresenta la funzionalità condivisa da tutti i tipi di media.
  • media.rs: Crea due struct pubbliche che implementano il tuo trait:
    • Audio: con un campo pubblico title (String) che stampa Playing audio: {title} quando viene riprodotto
    • Video: con un campo pubblico title (String) che stampa Playing video: {title} quando viene riprodotto
  • main.rs: Riunisci i tuoi moduli e crea istanze di entrambi i tipi di media usando gli input forniti. Chiama il metodo play su ciascuno per dimostrare come lo stesso trait produca risultati diversi in base al tipo di media.

Il tuo output dovrebbe seguire questo formato:

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

Per esempio, con gli input Bohemian Rhapsody e The Matrix:

Playing audio: Bohemian Rhapsody
Playing video: The Matrix

Riceverai due input: un titolo audio e un titolo video.

Provalo tu

mod playable;
mod media;

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

fn main() {
    // Leggi l'input
    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: Crea un'istanza di Audio con audio_title
    
    // TODO: Crea un'istanza di Video con video_title
    
    // TODO: Chiama play() su entrambe le istanze
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Rust online