반려동물 정의하기
Coddy Rust 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 61개 중 19번째.
챌린지
쉬움Virtual Pet 프로젝트에 오신 것을 환영합니다! 앞으로 몇 가지 레슨을 통해 구조체(structs), 메서드(methods), 모듈(modules), 그리고 캡슐화(encapsulation)에 대해 배운 모든 내용을 종합하여 완전한 반려동물 시뮬레이션을 구축하게 됩니다.
이제 Virtual Pet 제작을 시작해 봅시다! 첫 번째 단계에서는 적절한 캡슐화를 갖춘 자체 모듈에 Pet 구조체를 생성하여 기초를 다질 것입니다.
코드는 다음 두 개의 파일로 구성됩니다:
pet.rs: 세 개의 비공개(private) 필드인name(String),energy(u32),hunger(u32)를 가진Pet구조체를 정의하세요. 이름을 매개변수로 받아energy는100으로,hunger는0으로 설정된 반려동물을 생성하는 공개(public)new연관 함수를 구현하세요. 또한 반려동물의 이름에 대한 참조를 반환하는 공개name게터(getter) 메서드를 추가하세요.main.rs:pet모듈을 선언하고Pet을 스코프로 가져옵니다. 입력으로부터 이름을 읽고, 그 이름으로 새 반려동물을 생성한 뒤 환영 메시지를 출력하세요.
환영 메시지는 다음 형식을 따라야 합니다:
Welcome, {name}!예를 들어, 입력값이 Buddy라면 출력값은 다음과 같아야 합니다:
Welcome, Buddy!구조체는 main.rs에서 사용할 수 있도록 공개(public)되어야 하지만, 필드들은 비공개(private)로 유지되어 제공된 메서드를 통해서만 접근할 수 있어야 함을 기억하세요.
직접 해보기
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: 주어진 name으로 새로운 Pet 생성하기
// TODO: pet의 name getter를 사용하여 환영 메시지 출력하기
// 형식: "Welcome, {name}!"
}