Menu
CoddyTech

状态报告

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

challenge icon

挑战

简单

你的虚拟宠物进展得很顺利!现在,我们来让它能够报告自己的状态。在这一步中,你将添加一个 status 方法,用来全面展示宠物当前的状态。

状态报告应根据宠物的精力和饥饿程度描述它的状态。根据你照顾它的情况,宠物可能会有不同的心情:

  • 如果精力为 50 或更高,并且饥饿程度为 50 或更低,你的宠物就会开心
  • 否则,你的宠物就会疲惫

在你的 Pet 中添加一个 status 方法,该方法接收 &self,并打印一份完整的状态报告,显示宠物的名字、精力、饥饿程度和心情。

状态报告应遵循以下确切格式:

--- Status Report ---
Name: {name}
Energy: {energy}
Hunger: {hunger}
Mood: {mood}

在你的 main.rs 中,读取宠物的名字、精力和饥饿程度,为宠物设置这些值,然后调用 status 方法显示报告。

例如,如果输入是:

Buddy
70
30

输出应为:

--- Status Report ---
Name: Buddy
Energy: 70
Hunger: 30
Mood: happy

如果输入是:

Max
40
60

输出应为:

--- Status Report ---
Name: Max
Energy: 40
Hunger: 60
Mood: tired

这个方法能让你随时快速查看宠物的状态!

亲手试试

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 mut energy_input = String::new();
    std::io::stdin().read_line(&mut energy_input).expect("Failed to read line");
    let initial_energy: u32 = energy_input.trim().parse().expect("Failed to parse energy");

    let mut hunger_input = String::new();
    std::io::stdin().read_line(&mut hunger_input).expect("Failed to read line");
    let initial_hunger: u32 = hunger_input.trim().parse().expect("Failed to parse hunger");

    let mut my_pet = Pet::new(name);
    my_pet.set_energy(initial_energy);
    my_pet.set_hunger(initial_hunger);
    my_pet.play();

    println!("Energy: {}", my_pet.energy());
    println!("Hunger: {}", my_pet.hunger());
}

面向对象编程中的所有课

自己练习: Rust 在线编译器