تعريف الحيوان الأليف
جزء من قسم البرمجة كائنية التوجه في رحلة Rust على Coddy. الدرس 19 من 61.
التحدي
سهلمرحبًا بك في مشروع الحيوان الأليف الافتراضي! خلال الدروس القليلة القادمة، ستبني محاكاة كاملة لحيوان أليف تجمع كل ما تعلمته عن struct وmethod وmodule وencapsulation.
لنبدأ ببناء حيوانك الأليف الافتراضي! في هذه الخطوة الأولى، ستُنشئ الأساس من خلال إنشاء struct باسم Pet في module خاص به مع encapsulation مناسبة.
ستنظّم شيفرتك عبر ملفين:
pet.rs: Define structPetالخاص بك مع ثلاثة fields private:name(String) وenergy(u32) وhunger(u32). Implement associated function public باسمnewيأخذ اسمًا وينشئ pet مع ضبطenergyعلى100وضبطhungerعلى0. أضف أيضًا method getter public باسمnameتُرجع reference إلى اسم pet.main.rs: صرّح عن modulepetوأدخلPetإلى النطاق. اقرأ اسمًا من الإدخال، وأنشئ pet جديدة بهذا الاسم، واطبع رسالة ترحيب.
يجب أن تتبع رسالة الترحيب هذا Format:
Welcome, {name}!على سبيل المثال، إذا كان الإدخال هو Buddy، فيجب أن يكون الناتج:
Welcome, Buddy!تذكّر أن تكون struct public حتى يمكن استخدامها من main.rs، لكن يجب أن تظل fields private: لا يمكن الوصول إليها إلا من خلال methods التي توفرها.
جرّب بنفسك
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: أنشئ Pet جديدًا بالاسم المعطى
// TODO: اطبع رسالة الترحيب باستخدام مُحصِّل اسم الـ pet
// التنسيق: "Welcome, {name}!"
}
جميع دروس البرمجة كائنية التوجه
1الأساليب والسلوك
مقدمة في كتل التنفيذمعامل Selfالأساليب القابلة للتعديلالدوال المرتبطةكتل تنفيذ متعددةتسلسل الأساليبمراجعة - إجراءات المستطيل4مشروع: حيوان أليف افتراضي
تعريف الحيوان الأليفإطعام الحيوان الأليف2التغليف والوحدات البرمجية
أساسيات الوحدات البرمجيةالكلمة المفتاحية Publicالحقول الخاصةدوال Gettersدوال Settersمراجعة - الخزانة الآمنة5الأنواع العامة (Generics)
الـ Structs العامةالـ Methods العامةأنواع عامة متعددةالـ Functions العامةمراجعة - Coordinate Point3التعدادات المتقدمة (Advanced Enums)
التعدادات مع البياناتالأساليب (Methods) في التعداداتمطابقة حالات البياناتمراجعة التعداد Optionملخص - التعداد Shape6تعريف الـ Traits
ما هي الـ Trait؟تنفيذ الـ Traitsالتنفيذات الافتراضيةتجاوز التنفيذات الافتراضيةالـ Traits مع المعاملاتملخص - مشغل الوسائطتدرّب بنفسك: مترجم Rust عبر الإنترنت