Menu
Coddy logo textTech

텍스트 컴포넌트

Coddy Rust 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 61개 중 50번째.

challenge icon

챌린지

쉬움

이전 레슨에서 만든 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()를 호출하십시오
}

Object Oriented Programming의 모든 레슨