定义宠物
本课属于 Coddy Rust 学习旅程的“面向对象编程”单元。第 19 课,共 61 课。
挑战
简单欢迎来到虚拟宠物项目!接下来的几课中,你将构建一个完整的宠物模拟程序,综合运用你学过的结构体、方法、模块和封装知识。
让我们开始构建你的虚拟宠物吧!在这第一步中,你将创建一个独立模块中的 Pet 结构体,并正确进行封装,为项目打好基础。
你将把代码分在两个文件中:
pet.rs:定义Pet结构体,其中包含三个私有字段:name(String)、energy(u32)和hunger(u32)。实现一个公开的关联函数new,接收一个名字,并创建一只宠物,其中energy的值为100,hunger的值为0。再添加一个公开的name获取方法,返回宠物名字的引用。main.rs:声明pet模块,并将Pet引入作用域。从输入中读取名字,用这个名字创建一只新宠物,并打印欢迎消息。
欢迎消息应遵循以下格式:
Welcome, {name}!例如,如果输入是 Buddy,输出应为:
Welcome, Buddy!记住,结构体应为公开的,这样才能在 main.rs 中使用;但字段应保持私有,只能通过你提供的方法访问。
亲手试试
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:使用 pet 的名字获取方法打印欢迎消息
// 格式:"Welcome, {name}!"
}
面向对象编程中的所有课
自己练习: Rust 在线编译器