Menu
CoddyTech

Draw trait

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

challenge icon

挑战

简单

让我们开始构建一个文档系统!在这个项目中,你将使用 trait 对象创建一个灵活的框架来渲染 UI 组件。首先要在单独的模块文件中定义一个 Draw trait。

你需要创建两个文件来组织代码:

  • draw.rs:定义一个公开的 Draw trait,其中包含一个名为 draw 的方法。该方法接收 &self 并打印输出。这个 trait 将作为所有 UI 组件都必须遵守的约定。
  • main.rs:引入 draw 模块,并创建一个名为 Label 的简单结构体,其中有一个公开的 text 字段(类型为 String)。为 Label 实现 Draw trait,这样调用 draw() 时就会打印标签的文本。

在主函数中,创建一个 Label 实例,并调用它的 draw() 方法来显示文本。

输入内容如下:

  • 一个表示标签文本的字符串

输出应当恰好是标签文本,并且只占一行。

亲手试试

mod draw;

use draw::Draw;

// TODO: 定义一个名为 Label 的公共结构体,包含一个公共的 text 字段(String)

// TODO: 为 Label 实现 Draw trait
// draw 方法应打印标签的文本

fn main() {
    let mut input = String::new();
    std::io::stdin().read_line(&mut input).expect("Failed to read line");
    let text = input.trim().to_string();

    // TODO: 用输入的文本创建一个 Label 实例
    // TODO: 调用该标签的 draw() 方法
}

面向对象编程中的所有课

自己练习: Rust 在线编译器