Menu
CoddyTech

定义宠物

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

challenge icon

挑战

简单

欢迎来到虚拟宠物项目!接下来的几课中,你将构建一个完整的宠物模拟程序,综合运用你学过的结构体、方法、模块和封装知识。

让我们开始构建你的虚拟宠物吧!在这第一步中,你将创建一个独立模块中的 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 在线编译器