تعريف الحيوان الأليف
جزء من قسم Object Oriented Programming في رحلة Rust على Coddy — الدرس 19 من 61.
التحدي
سهلمرحباً بك في مشروع الحيوان الأليف الافتراضي (Virtual Pet)! خلال الدروس القليلة القادمة، ستقوم ببناء محاكاة كاملة لحيوان أليف تجمع كل ما تعلمته حول الـ structs، والـ methods، والـ modules، والـ encapsulation.
لنبدأ في بناء حيوانك الأليف الافتراضي! في هذه الخطوة الأولى، ستقوم بوضع الأساس من خلال إنشاء Pet struct في وحدة (module) خاصة به مع تطبيق مبدأ التغليف (encapsulation) بشكل صحيح.
ستقوم بتنظيم الكود الخاص بك عبر ملفين:
pet.rs: قم بتعريفPetstruct مع ثلاثة حقول خاصة (private fields):name(String)، وenergy(u32)، وhunger(u32). قم بتنفيذ دالة مرتبطة (associated function) عامة باسمnewتأخذ اسماً وتنشئ حيواناً أليفاً مع ضبطenergyعلى100وhungerعلى0. أضف أيضاً طريقة جلب (getter method) عامة باسمnameتعيد مرجعاً (reference) لاسم الحيوان الأليف.main.rs: قم بالتصريح عن وحدةpetواستدعاءPetإلى النطاق (scope). اقرأ اسماً من المدخلات، وأنشئ حيواناً أليفاً جديداً بهذا الاسم، واطبع رسالة ترحيب.
يجب أن تتبع رسالة الترحيب هذا التنسيق:
Welcome, {name}!على سبيل المثال، إذا كانت المدخلات هي Buddy، يجب أن تكون المخرجات:
Welcome, Buddy!تذكر أن الـ struct يجب أن يكون عاماً (public) حتى يمكن استخدامه من main.rs، ولكن يجب أن تظل الحقول خاصة (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: إنشاء حيوان أليف جديد بالاسم المعطى
// TODO: طباعة رسالة الترحيب باستخدام دالة الحصول على اسم الحيوان الأليف
// "Welcome, {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 مع المعاملاتملخص - مشغل الوسائط