Menu
CoddyTech

喂养宠物

本课属于 Coddy Rust 学习旅程的“面向对象编程”单元。第 20 课,共 61 课。

challenge icon

挑战

简单

现在你的宠物已经创建好了,是时候让它拥有进食的能力了!在这一步中,你将添加一个 feed 方法,让你可以照顾宠物的饥饿状态。

在现有的 pet.rs 模块基础上,添加一个 feed 方法来降低宠物的饥饿值。喂食后,宠物的饥饿值应减少 30,但不能低于 0。喂食后,该方法应打印一条消息,说明宠物享用了这顿饭。

你还需要添加一个 hunger getter 方法,这样就能从模块外部查看宠物的饥饿值。

在 main.rs 中,你将读取宠物的名字和初始饥饿值。创建宠物,设置它的初始饥饿值,喂它一次,然后显示更新后的饥饿值。

输出应符合以下格式:

{name} enjoyed the meal!
Hunger: {hunger_level}

例如,如果输入是:

Buddy
50

输出应为:

Buddy enjoyed the meal!
Hunger: 20

如果初始饥饿值是 20,喂食后饥饿值会降到 0(不会变成负数):

Buddy enjoyed the meal!
Hunger: 0

你需要添加一个 set_hunger 方法来设置初始饥饿值,以便进行测试,因为 new 构造函数默认会将饥饿值设为 0。

亲手试试

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());
}

面向对象编程中的所有课

自己练习: Rust 在线编译器