Evcil Hayvanı Tanımlama
Coddy'nin Rust Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 19 / 61.
Görev
KolaySanal Evcil Hayvan projesine hoş geldiniz! Önümüzdeki birkaç ders boyunca, struct'lar, metotlar, modüller ve kapsülleme (encapsulation) hakkında öğrendiğiniz her şeyi bir araya getiren eksiksiz bir evcil hayvan simülasyonu oluşturacaksınız.
Sanal Evcil Hayvanınızı oluşturmaya başlayalım! Bu ilk adımda, kendi modülünde uygun kapsülleme ile bir Pet struct'ı oluşturarak temeli atacaksınız.
Kodunuzu iki dosya halinde düzenleyeceksiniz:
pet.rs: Üç özel (private) alana sahipPetstruct'ınızı tanımlayın:name(String),energy(u32) vehunger(u32). Bir isim alan veenergydeğeri100,hungerdeğeri0olarak ayarlanmış bir evcil hayvan oluşturan genel (public) birnewilişkili fonksiyonu (associated function) uygulayın. Ayrıca evcil hayvanın ismine bir referans döndüren genel birnamegetter metodu ekleyin.main.rs:petmodülünü bildirin vePetstruct'ını kapsama (scope) dahil edin. Girdiden bir isim okuyun, bu isimle yeni bir evcil hayvan oluşturun ve bir karşılama mesajı yazdırın.
Karşılama mesajınız şu formatta olmalıdır:
Welcome, {name}!Örneğin, girdi Buddy ise, çıktı şu şekilde olmalıdır:
Welcome, Buddy!Struct'ın main.rs dosyasından kullanılabilmesi için genel (public) olması gerektiğini, ancak alanların özel (private) kalması gerektiğini unutmayın; bunlara yalnızca sağladığınız 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şturun
// TODO: Pet'in isim alıcısını (getter) kullanarak hoş geldin mesajını yazdırın
// Format: "Welcome, {name}!"
}
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