تقرير الحالة
جزء من قسم Object Oriented Programming في رحلة Rust على Coddy — الدرس 22 من 61.
التحدي
سهلحيوانك الأليف الافتراضي يتقدم بشكل جيد! الآن دعنا نمنحه القدرة على الإبلاغ عن شعوره. في هذه الخطوة، ستضيف طريقة status توفر نظرة عامة كاملة على الحالة الحالية لحيوانك الأليف.
يجب أن يصف تقرير الحالة حالة حيوانك الأليف بناءً على مستويات الطاقة والجوع لديه. يمكن أن يكون حيوانك الأليف في حالات مزاجية مختلفة اعتمادًا على مدى اهتمامك به:
- إذا كانت الطاقة
50أو أكثر والجوع50أو أقل، فإن حيوانك الأليف happy - خلاف ذلك، يكون حيوانك الأليف tired
أضف طريقة status إلى Pet الخاص بك والتي تأخذ &self وتطبع تقرير حالة كاملاً يوضح اسم الحيوان الأليف، وطاقته، وجوعه، ومزاجه.
يجب أن يتبع تقرير الحالة هذا التنسيق تماماً:
--- Status Report ---
Name: {name}
Energy: {energy}
Hunger: {hunger}
Mood: {mood}في ملف main.rs، اقرأ اسم الحيوان الأليف، وقيم الطاقة، والجوع، وقم بإعداد حيوانك الأليف بهذه القيم، ثم استدعِ طريقة status لعرض التقرير.
على سبيل المثال، إذا كان الإدخال هو:
Buddy
70
30يجب أن يكون المخرج:
--- Status Report ---
Name: Buddy
Energy: 70
Hunger: 30
Mood: happyوإذا كان الإدخال هو:
Max
40
60يجب أن يكون المخرج:
--- Status Report ---
Name: Max
Energy: 40
Hunger: 60
Mood: tiredتمنحك هذه الطريقة وسيلة سريعة للاطمئنان على حالة حيوانك الأليف في أي وقت!
جرّب بنفسك
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());
}
جميع دروس Object Oriented Programming
1الأساليب والسلوك
مقدمة في كتل التنفيذمعامل Selfالأساليب القابلة للتعديلالدوال المرتبطةكتل تنفيذ متعددةتسلسل الأساليبمراجعة - إجراءات المستطيل4مشروع: حيوان أليف افتراضي
تعريف الحيوان الأليفإطعام الحيوان الأليف2التغليف والوحدات البرمجية
أساسيات الوحدات البرمجيةالكلمة المفتاحية Publicالحقول الخاصةدوال Gettersدوال Settersمراجعة - الخزانة الآمنة5الأنواع العامة (Generics)
الـ Structs العامةالـ Methods العامةأنواع عامة متعددةالـ Functions العامةمراجعة - Coordinate Point3التعدادات المتقدمة (Advanced Enums)
التعدادات مع البياناتالأساليب (Methods) في التعداداتمطابقة حالات البياناتمراجعة التعداد Optionملخص - التعداد Shape6تعريف الـ Traits
ما هي الـ Trait؟تنفيذ الـ Traitsالتنفيذات الافتراضيةتجاوز التنفيذات الافتراضيةالـ Traits مع المعاملاتملخص - مشغل الوسائط