Draw Trait'i
Coddy'nin Rust Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 49 / 61.
Görev
KolayBir Belge Sistemi oluşturmaya başlayalım! Bu projede, trait nesnelerini kullanarak UI bileşenlerini işlemek için esnek bir çerçeve oluşturacaksınız. Temel, kendi modül dosyasında bir Draw trait'i tanımlayarak başlar.
Kodunuzu düzenlemek için iki dosya oluşturacaksınız:
draw.rs:&selfalan ve çıktı yazdırandrawadında tek bir metoda sahip, genel (public) birDrawtrait'i tanımlayın. Bu trait, tüm UI bileşenlerinin yerine getirmesi gereken sözleşme görevi görecektir.main.rs:drawmodülünüzü dahil edin ve genel birtextalanına (birString) sahipLabeladında basit bir struct oluşturun.LabeliçinDrawtrait'ini uygulayın, böylecedraw()çağrıldığında etiketin metni yazdırılsın.
Ana fonksiyonunuzda (main function), bir Label örneği oluşturun ve metni görüntülemek için onun draw() metodunu çağırın.
Aşağıdaki girdi sağlanacaktır:
- Etiketin metnini temsil eden bir dize (string)
Çıktınız, tek bir satırda tam olarak etiketin metni olmalıdır.
Kendin dene
mod draw;
use draw::Draw;
// TODO: text adında genel bir alanı (String) olan Label adında genel bir yapı (struct) tanımlayın
// TODO: Label için Draw özelliğini (trait) uygulayın
// draw yöntemi etiketin metnini yazdırmalıdır
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: Giriş metni ile bir Label örneği oluşturun
// TODO: Etiket üzerinde draw() yöntemini ç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