Menu
CoddyTech

Komponen Teks

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Rust di Coddy. Pelajaran 50 dari 61.

challenge icon

Tantangan

Mudah

Melanjutkan trait Draw yang kamu buat pada pelajaran sebelumnya, mari tambahkan komponen UI nyata pertama kita: TextField. Komponen ini akan merepresentasikan elemen tampilan teks dalam sistem dokumen kita.

Kamu akan mengembangkan proyekmu dengan file module baru:

  • draw.rs: Pertahankan trait Draw dari tantangan sebelumnya.
  • text_field.rs: Buat struct TextField dengan field content publik (bertipe String). Implementasikan trait Draw untuk TextField agar pemanggilan draw() mencetak teks dalam format tertentu: Text: {content}
  • main.rs: Sertakan kedua module dan buat instance TextField. Panggil method draw()-nya untuk merender komponen.

Ingat, module text_field-mu perlu menggunakan trait Draw dari module draw. Kamu bisa mengaksesnya dengan crate::draw::Draw karena kedua module merupakan bagian dari crate yang sama.

Input berikut akan diberikan:

  • String yang mewakili konten text field

Output-mu harus mengikuti format persis berikut:

Text: Hello World

Coba sendiri

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: Buat instance TextField dan panggil draw() pada instance tersebut
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Rust online