ペットの定義
CoddyのRustジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 19/61。
チャレンジ
簡単Virtual Pet プロジェクトへようこそ!これからのレッスンでは、struct、method、module、encapsulation について学んだことをすべて組み合わせて、完全なペットシミュレーションを構築します。
Virtual Pet の構築を始めましょう!この最初のステップでは、独自の module に適切な encapsulation を備えた Pet struct を作成し、基盤を整えます。
コードを次の2つのファイルに分けて整理します。
pet.rs:3つの private な fields、name(String)、energy(u32)、hunger(u32)を持つPetstruct を Define します。name を takes し、energyを100、hungerを0に設定した pet を作成する public なnewassociated function を Implement します。また、pet の name への reference を returns する public なnamegetter method も追加します。main.rs:petmodule を Declare し、Petをスコープに導入します。入力から name を読み取り、その 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: ペットの name ゲッターを使って歓迎メッセージを表示する
// 形式: "Welcome, {name}!"
}
オブジェクト指向プログラミングのすべてのレッスン
自分で練習してみよう: Rustオンラインコンパイラ