Menu
Coddy logo textTech

ペットの定義

CoddyのRustジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 19/61。

challenge icon

チャレンジ

簡単

Virtual Pet プロジェクトへようこそ!これからのレッスンでは、struct、method、module、encapsulation について学んだことをすべて組み合わせて、完全なペットシミュレーションを構築します。

Virtual Pet の構築を始めましょう!この最初のステップでは、独自の module に適切な encapsulation を備えた Pet struct を作成し、基盤を整えます。

コードを次の2つのファイルに分けて整理します。

  • pet.rs:3つの private な fields、name(String)、energy(u32)、hunger(u32)を持つ Pet struct を Define します。name を takes し、energy100hunger0 に設定した pet を作成する public な new associated function を Implement します。また、pet の name への reference を returns する public な name getter method も追加します。
  • main.rspet module を 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オンラインコンパイラ