状态报告
本课属于 Coddy Rust 学习旅程的“面向对象编程”单元。第 22 课,共 61 课。
挑战
简单你的虚拟宠物进展得很顺利!现在,我们来让它能够报告自己的状态。在这一步中,你将添加一个 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 在线编译器