Laporan Status
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Rust di Coddy. Pelajaran 22 dari 61.
Tantangan
MudahHewan peliharaan virtualmu berkembang dengan baik! Sekarang, mari kita beri kemampuan untuk melaporkan kondisinya. Pada langkah ini, kamu akan menambahkan method status yang memberikan gambaran lengkap tentang keadaan hewan peliharaanmu saat ini.
Laporan status harus menjelaskan kondisi hewan peliharaanmu berdasarkan tingkat energi dan rasa laparnya. Hewan peliharaanmu bisa memiliki suasana hati yang berbeda, tergantung seberapa baik kamu merawatnya:
- Jika energi bernilai
50atau lebih DAN rasa lapar bernilai50atau kurang, hewan peliharaanmu merasa happy - Jika tidak, hewan peliharaanmu merasa tired
Tambahkan method status ke Pet yang menerima &self dan mencetak laporan status lengkap yang menampilkan nama, energi, rasa lapar, dan suasana hati hewan peliharaan.
Laporan status harus mengikuti format persis berikut:
--- Status Report ---
Name: {name}
Energy: {energy}
Hunger: {hunger}
Mood: {mood}Di main.rs, baca nama, nilai energi, dan rasa lapar hewan peliharaan, siapkan hewan peliharaanmu dengan nilai-nilai tersebut, lalu panggil method status untuk menampilkan laporan.
Contohnya, jika inputnya adalah:
Buddy
70
30Outputnya seharusnya:
--- Status Report ---
Name: Buddy
Energy: 70
Hunger: 30
Mood: happyJika inputnya adalah:
Max
40
60Outputnya seharusnya:
--- Status Report ---
Name: Max
Energy: 40
Hunger: 60
Mood: tiredMethod ini memberimu cara cepat untuk memeriksa kesejahteraan hewan peliharaanmu kapan saja!
Coba sendiri
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 mut energy_input = String::new();
std::io::stdin().read_line(&mut energy_input).expect("Failed to read line");
let initial_energy: u32 = energy_input.trim().parse().expect("Failed to parse energy");
let mut hunger_input = String::new();
std::io::stdin().read_line(&mut hunger_input).expect("Failed to read line");
let initial_hunger: u32 = hunger_input.trim().parse().expect("Failed to parse hunger");
let mut my_pet = Pet::new(name);
my_pet.set_energy(initial_energy);
my_pet.set_hunger(initial_hunger);
my_pet.play();
println!("Energy: {}", my_pet.energy());
println!("Hunger: {}", my_pet.hunger());
}
Semua pelajaran di Pemrograman Berorientasi Objek
1Method dan Perilaku
Pengantar Blok ImplementasiParameter SelfMethod MutableFungsi TerkaitBeberapa Blok ImplementasiMethod BerantaiRangkuman: Aksi Persegi Panjang4Proyek: Hewan Peliharaan Virtual
Mendefinisikan Hewan PeliharaanMemberi Makan Hewan Peliharaan2Enkapsulasi dan module
Dasar-Dasar moduleKata Kunci publicField privateGetterSetterRekap: Loker AmanLatihan sendiri: Compiler Rust online