텍스트 컴포넌트
Coddy Rust 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 61개 중 50번째.
챌린지
쉬움이전 레슨에서 만든 Draw 트레이트를 기반으로, 첫 번째 실제 UI 컴포넌트인 TextField를 추가해 보겠습니다. 이 컴포넌트는 문서 시스템의 텍스트 표시 요소를 나타냅니다.
새로운 모듈 파일을 추가하여 프로젝트를 확장합니다:
draw.rs: 이전 챌린지에서 만든Draw트레이트를 유지합니다.text_field.rs: 공개(public)content필드(String타입)를 가진TextField구조체를 생성합니다.TextField에 대해Draw트레이트를 구현하여,draw()를 호출했을 때Text: {content}와 같은 특정 형식으로 텍스트가 출력되도록 합니다.main.rs: 두 모듈을 모두 가져와서TextField인스턴스를 생성합니다.draw()메서드를 호출하여 컴포넌트를 렌더링합니다.
text_field 모듈에서 draw 모듈의 Draw 트레이트를 사용해야 함을 기억하세요. 두 모듈 모두 동일한 크레이트의 일부이므로 crate::draw::Draw를 통해 접근할 수 있습니다.
다음과 같은 입력이 제공됩니다:
- 텍스트 필드의 내용을 나타내는 문자열
출력은 반드시 다음 형식을 따라야 합니다:
Text: Hello World직접 해보기
mod draw;
mod text_field;
use draw::Draw;
pub struct Label {
pub text: String,
}
impl Draw for Label {
fn draw(&self) {
println!("{}", self.text);
}
}
fn main() {
let mut input = String::new();
std::io::stdin().read_line(&mut input).expect("Failed to read line");
let content = input.trim().to_string();
// TODO: TextField 인스턴스를 생성하고 draw()를 호출하십시오
}