文本组件
本课属于 Coddy Rust 学习旅程的“面向对象编程”单元。第 50 课,共 61 课。
挑战
简单基于你在上一课中创建的 Draw trait,我们来添加第一个真正的 UI 组件:TextField。这个组件将在文档系统中表示一个文本显示元素。
你需要在项目中添加一个新的模块文件:
draw.rs:保留你在上一个挑战中创建的Drawtrait。text_field.rs:创建一个TextField结构体,其中包含一个公开的content字段(类型为String)。为TextField实现Drawtrait,使调用draw()时按特定格式打印文本:Text: {content}main.rs:引入这两个模块并创建一个TextField实例。调用它的draw()方法来渲染该组件。
请记住,text_field 模块需要使用来自 draw 模块的 Draw trait。由于这两个模块都属于同一个 crate,你可以通过 crate::draw::Draw 访问它。
将提供以下输入:
- 一个表示文本字段内容的字符串
你的输出应遵循以下确切格式:
Text: Hello World亲手试试
mod draw;
mod text_field;
use draw::Draw;
pub struct Label {
pub text: String,
}
impl Draw for Label {
fn draw(&self) {
println!("{}", self.text);
}
}
fn main() {
let mut input = String::new();
std::io::stdin().read_line(&mut input).expect("Failed to read line");
let content = input.trim().to_string();
// TODO:创建一个 TextField 实例,并调用它的 draw() 方法
}面向对象编程中的所有课
自己练习: Rust 在线编译器