Menu
Coddy logo textTech

Drawトレイト

CoddyのRustジャーニー「Object Oriented Programming」セクションの一部 — レッスン 49/61。

challenge icon

チャレンジ

簡単

ドキュメントシステムを構築しましょう!このプロジェクトでは、トレイトオブジェクトを使用してUIコンポーネントをレンダリングするための柔軟なフレームワークを作成します。まずは、独自のモジュールファイルで Draw トレイトを定義することから始めます。

コードを整理するために、2つのファイルを作成します:

  • draw.rs: &self を受け取り出力を表示する draw という単一のメソッドを持つ、パブリックな Draw トレイトを定義します。このトレイトは、すべてのUIコンポーネントが満たすべき契約として機能します。
  • main.rs: draw モジュールを取り込み、パブリックな text フィールド(String 型)を持つ Label というシンプルな構造体を作成します。Label に対して Draw トレイトを実装し、draw() を呼び出すとラベルのテキストが表示されるようにします。

メイン関数内で、Label インスタンスを作成し、その draw() メソッドを呼び出してテキストを表示してください。

以下の入力が提供されます:

  • ラベルのテキストを表す文字列

出力は、ラベルのテキストを正確に1行で表示する必要があります。

自分で試してみよう

mod draw;

use draw::Draw;

// TODO: textというパブリックなフィールド(String型)を持つ、Labelというパブリックな構造体を定義してください

// TODO: LabelにDrawトレイトを実装してください
// 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()メソッドを呼び出してください
}

Object Oriented Programmingのすべてのレッスン