Evcil Hayvanı Tanımlama
Coddy'nin Rust Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 19 / 61.
Görev
KolayVirtual Pet projesine hoş geldin! Önümüzdeki birkaç derste, yapılar, metotlar, modüller ve kapsülleme hakkında öğrendiğin her şeyi bir araya getiren eksiksiz bir evcil hayvan simülasyonu oluşturacaksın.
Virtual Pet'i oluşturmaya başlayalım! Bu ilk adımda, uygun kapsülleme ile kendi modülünde bir Pet yapısı oluşturarak temel yapıyı kuracaksın.
Kodunu iki dosyaya ayıracaksın:
pet.rs: Üç özel alana sahipPetyapını tanımla:name(String),energy(u32) vehunger(u32). Bir ad alan venewdeğerinienergy,100değerini isehungerolarak ayarlanmış bir evcil hayvan oluşturan herkese açık bir0ilişkili işlevi uygula. Ayrıca evcil hayvanın adına bir başvuru döndüren herkese açık birnamegetter metodunu ekle.main.rs:petmodülünü bildir vePet'i kapsama getir. Girdiden bir ad oku, bu adla yeni bir evcil hayvan oluştur ve bir hoş geldin mesajı yazdır.
Hoş geldin mesajın şu biçimi izlemelidir:
Welcome, {name}!Örneğin girdi Buddy ise çıktı şu olmalıdır:
Welcome, Buddy!Yapının main.rs dosyasından kullanılabilmesi için herkese açık olması gerektiğini, ancak alanların özel kalması gerektiğini unutma: alanlara yalnızca sağladığın metotlar aracılığıyla erişilebilmelidir.
Kendin dene
mod pet;
use pet::Pet;
fn main() {
let mut name = String::new();
std::io::stdin().read_line(&mut name).expect("Failed to read line");
let name = name.trim().to_string();
// TODO: Verilen isimle yeni bir Pet oluştur
// TODO: Pet'in name getter'ını kullanarak hoş geldin mesajını yazdır
// Biçim: "Welcome, {name}!"
}
Nesne Yönelimli Programlama 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 PlayerKendi başına pratik yap: Online Rust derleyicisi