Menu
Coddy logo textTech

반려동물 정의하기

Coddy Rust 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 61개 중 19번째.

challenge icon

챌린지

쉬움

Virtual Pet 프로젝트에 오신 것을 환영합니다! 앞으로 몇 개의 레슨에 걸쳐, 지금까지 배운 struct, method, module, encapsulation에 관한 모든 내용을 하나로 결합한 완전한 pet simulation을 만들게 됩니다.

Virtual Pet을 만들어 보겠습니다! 첫 번째 단계에서는 적절한 encapsulation을 적용하여 별도의 module에 Pet struct를 만드는 방식으로 기본 구조를 설정합니다.

코드를 두 개의 파일로 구성합니다:

  • pet.rs: 세 개의 private fields인 name (String), energy (u32), hunger (u32)를 가진 Pet struct를 Define합니다. name을 takes하고 energy100으로, hunger0으로 설정한 pet을 만드는 public new associated function을 Implement합니다. 또한 pet의 name에 대한 reference를 returns하는 public name getter method를 추가합니다.
  • main.rs: pet module을 Declare하고 Pet을 scope에 가져옵니다. 입력에서 name을 read하고, 해당 name으로 새 pet을 만든 다음 welcome message를 Print합니다.

welcome message는 다음 Format을 따라야 합니다:

Welcome, {name}!

예를 들어 입력이 Buddy라면 출력은 다음과 같아야 합니다:

Welcome, Buddy!

struct는 main.rs에서 사용할 수 있도록 public이어야 하지만, fields는 private으로 유지되어야 한다는 점을 기억하세요. fields에는 사용자가 제공하는 method를 통해서만 접근할 수 있습니다.

직접 해보기

mod pet;

use pet::Pet;

fn main() {
    let mut name = String::new();
    std::io::stdin().read_line(&mut name).expect("Failed to read line");
    let name = name.trim().to_string();

    // TODO: 주어진 이름으로 새 Pet을 생성하세요

    // TODO: pet의 name getter를 사용하여 환영 메시지를 출력하세요
    // 형식: "Welcome, {name}!"
}

객체 지향 프로그래밍의 모든 레슨

직접 연습해 보세요: 온라인 Rust 컴파일러