ペットに餌をあげる
CoddyのRustジャーニー「Object Oriented Programming」セクションの一部 — レッスン 20/61。
チャレンジ
簡単ペットが存在するようになったので、次は食事をさせる機能を追加しましょう!このステップでは、ペットの空腹をケアするための feed メソッドを追加します。
既存の pet.rs モジュールを基に、ペットの空腹度(hunger)を減少させる feed メソッドを追加してください。食事を与えると、ペットの空腹度は 30 減少しますが、0 を下回ってはいけません。食事の後、メソッドはペットが食事を楽しんだことを示すメッセージを表示する必要があります。
また、モジュールの外からペットの空腹度を確認できるように、hunger ゲッターメソッドも必要です。
main.rs では、ペットの名前と初期の空腹度を読み取ります。ペットを作成し、初期の空腹度を設定し、一度食事を与えてから、更新された空腹度を表示してください。
出力は以下の形式に従う必要があります:
{name} enjoyed the meal!
Hunger: {hunger_level}例えば、入力が以下の場合:
Buddy
50出力は以下のようになります:
Buddy enjoyed the meal!
Hunger: 20もし空腹度が 20 から始まった場合、食事を与えると 0 になります(負の値にはなりません):
Buddy enjoyed the meal!
Hunger: 0new コンストラクタはデフォルトで空腹度を 0 に設定するため、テスト目的で空腹度を初期化するための set_hunger メソッドを追加する必要があります。
自分で試してみよう
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();
let my_pet = Pet::new(name);
println!("Pet name: {}", my_pet.name());
}