Evcil Hayvanı Besleme
Coddy'nin Rust Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 20 / 61.
Görev
KolayEvcil hayvanınız artık var olduğuna göre, ona yemek yeme yeteneği kazandırmanın zamanı geldi! Bu adımda, evcil hayvanınızın açlığıyla ilgilenmenizi sağlayan bir feed metodu ekleyeceksiniz.
Mevcut pet.rs modülünüzün üzerine inşa ederek, evcil hayvanın açlık seviyesini azaltan bir feed metodu ekleyin. Beslendiğinde, evcil hayvanın açlığı 30 azalmalıdır, ancak asla 0'ın altına düşmemelidir. Beslemeden sonra, metod evcil hayvanın yemeğinden keyif aldığını gösteren bir mesaj yazdırmalıdır.
Ayrıca, evcil hayvanın açlık seviyesini modül dışından kontrol edebilmek için bir hunger getter metoduna ihtiyacınız olacak.
main.rs dosyasında, evcil hayvanın adını ve başlangıç açlık değerini okuyacaksınız. Evcil hayvanınızı oluşturun, başlangıç açlığını ayarlayın, onu bir kez besleyin ve ardından güncellenmiş açlık seviyesini görüntüleyin.
Çıktı şu formatı takip etmelidir:
{name} enjoyed the meal!
Hunger: {hunger_level}Örneğin, giriş şu şekildeyse:
Buddy
50Çıktı şöyle olmalıdır:
Buddy enjoyed the meal!
Hunger: 20Ve eğer açlık 20 ile başlarsa, beslemek onu 0'a getirmelidir (negatif değil):
Buddy enjoyed the meal!
Hunger: 0new kurucusu açlığı varsayılan olarak 0 olarak ayarladığından, test amaçlı açlığı başlatmak için bir set_hunger metodu eklemeniz gerekecektir.
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();
let my_pet = Pet::new(name);
println!("Pet name: {}", my_pet.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