Metin Bileşeni
Coddy'nin Rust Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 50 / 61.
Görev
KolayÖnceki derste oluşturduğunuz Draw trait'i üzerine inşa ederek, ilk gerçek kullanıcı arayüzü bileşenimizi ekleyelim: bir TextField. Bu bileşen, belge sistemimizdeki bir metin görüntüleme öğesini temsil edecek.
Projenizi yeni bir modül dosyasıyla genişleteceksiniz:
draw.rs: Önceki görevdekiDrawtrait'inizi koruyun.text_field.rs: Genel bircontentalanına (birString) sahip birTextFieldstruct'ı oluşturun.TextFieldiçinDrawtrait'ini uygulayın, böylecedraw()çağrıldığında metni şu formatta yazdırsın:Text: {content}main.rs: Her iki modülü de dahil edin ve birTextFieldörneği oluşturun. Bileşeni işlemek içindraw()metodunu çağırın.
text_field modülünüzün draw modülündeki Draw trait'ini kullanması gerektiğini unutmayın. Her iki modül de aynı crate'in parçası olduğu için buna crate::draw::Draw ile erişebilirsiniz.
Aşağıdaki girdi sağlanacaktır:
- Metin alanının içeriğini temsil eden bir dize
Çıktınız tam olarak şu formatta olmalıdır:
Text: Hello WorldKendin dene
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: Bir TextField örneği oluşturun ve üzerinde draw() metodunu çağırın
}Object Oriented Programming bölümündeki tüm dersler
1Metotlar ve Davranış
Uygulama Bloklarına GirişSelf ParametresiDeğiştirilebilir Metotlarİlişkili FonksiyonlarBirden Fazla Uygulama BloğuMetot ZincirlemeÖzet - Dikdörtgen Eylemleri4Proje: Sanal Evcil Hayvan
Evcil Hayvanı TanımlamaEvcil Hayvanı Besleme2Kapsülleme ve Modüller
Modül TemelleriPublic Anahtar KelimesiPrivate AlanlarGetter'larSetter'larÖzet - Güvenli Kasa5Generic Yapılar
Generic Struct'larGeneric MetotlarÇoklu Generic TürlerGeneric FonksiyonlarÖzet - Koordinat Noktası8Sınırlandırıcı Olarak Trait'ler
Trait Sınırlandırıcı SözdizimiÇoklu SınırlandırıcılarWhere CümleciğiTrait'ler ile Tip DöndürmeÖzet - Generic Yazıcı11Rust'ta Tasarım Kalıpları
Newtype KalıbıKompozisyonDrop Trait'iFrom ve IntoÖzet - Smart Pointer Mock3İleri Seviye Enum'lar
Veri İçeren Enum'larEnum MetotlarıVeri Varyantlarını EşlemeOption Enum'ına Yeniden BakışÖzet - Shape Enum6Trait Tanımlama
Trait Nedir?Traitleri UygulamaVarsayılan UygulamalarVarsayılanları Geçersiz KılmaParametreli TraitlerÖzet - Media Player