إطعام الحيوان الأليف
جزء من قسم Object Oriented Programming في رحلة Rust على Coddy — الدرس 20 من 61.
التحدي
سهلالآن بعد أن أصبح حيوانك الأليف موجوداً، حان الوقت لمنحه القدرة على الأكل! في هذه الخطوة، ستضيف طريقة feed تتيح لك العناية بجوع حيوانك الأليف.
بناءً على وحدة pet.rs الحالية، أضف طريقة feed التي تقلل من مستوى جوع الحيوان الأليف. عند إطعامه، يجب أن ينخفض جوع الحيوان الأليف بمقدار 30، ولكن يجب ألا يقل أبداً عن 0. بعد الإطعام، يجب أن تطبع الطريقة رسالة توضح أن الحيوان الأليف استمتع بوجبته.
ستحتاج أيضاً إلى طريقة لجلب القيمة (getter) تسمى hunger حتى تتمكن من التحقق من مستوى جوع الحيوان الأليف من خارج الوحدة.
في main.rs، ستقرأ اسم الحيوان الأليف وقيمة الجوع الأولية. أنشئ حيوانك الأليف، واضبط جوعه الأولي، وأطعمه مرة واحدة، ثم اعرض مستوى الجوع المحدث.
يجب أن يتبع المخرج هذا التنسيق:
{name} enjoyed the meal!
Hunger: {hunger_level}على سبيل المثال، إذا كان الإدخال هو:
Buddy
50يجب أن يكون المخرج:
Buddy enjoyed the meal!
Hunger: 20وإذا بدأ الجوع عند 20، فإن الإطعام سيجعله 0 (وليس سالباً):
Buddy enjoyed the meal!
Hunger: 0ستحتاج إلى إضافة طريقة set_hunger لتهيئة الجوع لأغراض الاختبار، حيث أن منشئ new يضبط الجوع على 0 بشكل افتراضي.
جرّب بنفسك
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
1الأساليب والسلوك
مقدمة في كتل التنفيذمعامل Selfالأساليب القابلة للتعديلالدوال المرتبطةكتل تنفيذ متعددةتسلسل الأساليبمراجعة - إجراءات المستطيل4مشروع: حيوان أليف افتراضي
تعريف الحيوان الأليفإطعام الحيوان الأليف2التغليف والوحدات البرمجية
أساسيات الوحدات البرمجيةالكلمة المفتاحية Publicالحقول الخاصةدوال Gettersدوال Settersمراجعة - الخزانة الآمنة5الأنواع العامة (Generics)
الـ Structs العامةالـ Methods العامةأنواع عامة متعددةالـ Functions العامةمراجعة - Coordinate Point3التعدادات المتقدمة (Advanced Enums)
التعدادات مع البياناتالأساليب (Methods) في التعداداتمطابقة حالات البياناتمراجعة التعداد Optionملخص - التعداد Shape6تعريف الـ Traits
ما هي الـ Trait؟تنفيذ الـ Traitsالتنفيذات الافتراضيةتجاوز التنفيذات الافتراضيةالـ Traits مع المعاملاتملخص - مشغل الوسائط