Menu
CoddyTech

Trait Draw

Thuộc phần Lập trình hướng đối tượng trong hành trình Rust của Coddy. Bài học 49 trên 61.

challenge icon

Thử thách

Dễ

Hãy bắt đầu xây dựng Hệ thống tài liệu! Trong dự án này, bạn sẽ tạo một framework linh hoạt để kết xuất các thành phần giao diện người dùng bằng cách sử dụng các đối tượng trait. Nền tảng bắt đầu bằng việc định nghĩa trait Draw trong tệp module riêng.

Bạn sẽ tạo hai tệp để tổ chức code:

  • draw.rs: Định nghĩa trait Draw công khai với một phương thức duy nhất tên là draw, nhận &self và in ra đầu ra. Trait này sẽ là giao ước mà mọi thành phần giao diện người dùng phải đáp ứng.
  • main.rs: Khai báo module draw và tạo một struct đơn giản tên là Label với trường text công khai (kiểu String). Triển khai trait Draw cho Label để khi gọi draw(), chương trình in ra văn bản của nhãn.

Trong hàm main, hãy tạo một instance Label và gọi phương thức draw() của nó để hiển thị văn bản.

Đầu vào sau sẽ được cung cấp:

  • Một chuỗi đại diện cho văn bản của nhãn

Đầu ra phải chính xác là văn bản của nhãn trên một dòng.

Tự làm thử

mod draw;

use draw::Draw;

// TODO: Định nghĩa một struct công khai tên là Label với trường text công khai (String)

// TODO: Triển khai trait Draw cho Label
// Phương thức (method) draw cần in ra nội dung text của nhãn

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: Tạo một instance Label với văn bản đầu vào
    // TODO: Gọi phương thức draw() trên nhãn
}

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Rust online