ペットの定義
CoddyのRustジャーニー「Object Oriented Programming」セクションの一部 — レッスン 19/61。
チャレンジ
簡単バーチャルペットプロジェクトへようこそ!これからの数回のレッスンを通して、構造体、メソッド、モジュール、そしてカプセル化について学んだすべてを統合し、完全なペットシミュレーションを構築していきます。
それでは、バーチャルペットの構築を始めましょう!最初のステップでは、独自のモジュール内に適切なカプセル化を備えた Pet 構造体を作成し、基礎を固めます。
コードを2つのファイルに整理します:
pet.rs: 3つのプライベートフィールドname(String)、energy(u32)、hunger(u32) を持つPet構造体を定義します。名前を受け取り、energyを100に、hungerを0に設定してペットを作成するパブリックなnew関連関数を実装してください。また、ペットの名前への参照を返すパブリックなnameゲッターメソッドも追加してください。main.rs:petモジュールを宣言し、Petをスコープに取り込みます。入力から名前を読み取り、その名前で新しいペットを作成し、ウェルカムメッセージを表示してください。
ウェルカムメッセージは次の形式に従う必要があります:
Welcome, {name}!例えば、入力が Buddy の場合、出力は次のようになります:
Welcome, Buddy!構造体は main.rs から使用できるようにパブリックにする必要がありますが、フィールドはプライベートのままにし、提供するメソッドを通じてのみアクセスできるようにすることを忘れないでください。
自分で試してみよう
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: ペットの名前のゲッターを使用してウェルカムメッセージを表示する
// 形式: "Welcome, {name}!"
}