Komponen Teks
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Rust di Coddy. Pelajaran 50 dari 61.
Tantangan
MudahMelanjutkan 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 traitDrawdari tantangan sebelumnya.text_field.rs: Buat structTextFielddengan fieldcontentpublik (bertipeString). Implementasikan traitDrawuntukTextFieldagar pemanggilandraw()mencetak teks dalam format tertentu:Text: {content}main.rs: Sertakan kedua module dan buat instanceTextField. Panggil methoddraw()-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 WorldCoba 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
1Method dan Perilaku
Pengantar Blok ImplementasiParameter SelfMethod MutableFungsi TerkaitBeberapa Blok ImplementasiMethod BerantaiRangkuman: Aksi Persegi Panjang4Proyek: Hewan Peliharaan Virtual
Mendefinisikan Hewan PeliharaanMemberi Makan Hewan Peliharaan2Enkapsulasi dan module
Dasar-Dasar moduleKata Kunci publicField privateGetterSetterRekap: Loker AmanLatihan sendiri: Compiler Rust online