요약 - 미디어 플레이어
Coddy Rust 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 61개 중 34번째.
챌린지
쉬움trait를 통해 서로 다른 미디어 유형이 공통 인터페이스를 공유할 수 있는 방식을 보여 주는 간단한 미디어 플레이어 시스템을 만들어 봅시다!
코드를 세 개의 파일로 구성합니다:
playable.rs: 호출될 때 출력을 표시하는play(&self)method가 포함된 publicPlayabletrait를 Define합니다. 이trait는 모든 미디어 유형이 have 공유 기능을 나타냅니다.media.rs: 다음 두 개의 public 구조체를 만들고trait를 Implement합니다:Audio: publictitlefield(String)를 가지며, 재생될 때Playing audio: {title}를 출력합니다.Video: publictitlefield(String)를 가지며, 재생될 때Playing video: {title}를 출력합니다.
main.rs: 모듈을 하나로 모으고 제공된 입력을 사용하여 두 미디어 유형의 instances를 Create합니다. 각 인스턴스에서playmethod를 Call하여 동일한trait가 미디어 유형에 따라 서로 다른 출력을 생성하는 방식을 보여 줍니다.
출력은 다음 형식을 따라야 합니다:
Playing audio: {audio_title}
Playing video: {video_title}예를 들어 입력이 Bohemian Rhapsody와 The Matrix인 경우:
Playing audio: Bohemian Rhapsody
Playing video: The Matrix두 개의 입력, 즉 audio title과 video title을 받습니다.
직접 해보기
mod playable;
mod media;
use media::{Audio, Video};
use playable::Playable;
fn main() {
// 입력 읽기
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로 Audio 인스턴스 생성
// TODO: video_title로 Video 인스턴스 생성
// TODO: 두 인스턴스에서 play() 호출
}
객체 지향 프로그래밍의 모든 레슨
직접 연습해 보세요: 온라인 Rust 컴파일러