أساسيات الوحدات البرمجية
جزء من قسم Object Oriented Programming في رحلة Rust على Coddy — الدرس 8 من 61.
مع نمو برامج Rust الخاصة بك، يصبح الاحتفاظ بكل شيء في ملف واحد أمراً صعباً. يتيح لك نظام الوحدات (module system) في Rust تنظيم الكود عن طريق نقل الهياكل (structs) وتطبيقاتها (implementations) إلى ملفات منفصلة.
لإنشاء وحدة (module) في ملف منفصل، ببساطة تقوم بإنشاء ملف جديد بالاسم الذي تريده للوحدة. على سبيل المثال، لإنشاء وحدة player، ستقوم بإنشاء ملف يسمى player.rs:
// player.rs
struct Player {
name: String,
score: u32,
}
impl Player {
fn new(name: String) -> Player {
Player { name, score: 0 }
}
}
لاستخدام هذه الوحدة في ملفك الرئيسي، تقوم بالتصريح عنها باستخدام الكلمة المفتاحية mod. هذا يخبر Rust بالبحث عن ملف بهذا الاسم:
// main.rs
mod player;
fn main() {
// يمكننا الآن الوصول إلى العناصر من وحدة player
}
يخبر التصريح mod player; لغة Rust بالبحث عن محتويات player.rs وتضمينها. فكر في الأمر كربط لكود ذلك الملف ببرنامجك. يجب أن يتطابق اسم الوحدة (module) مع اسم الملف تماماً (بدون امتداد .rs).
هذا الفصل يبقي الكود المترابط معاً—تعريف الـ struct الخاص بك وجميع دواله (methods) توجد في ملف واحد مخصص، بينما يظل main.rs مركزاً على نقطة دخول البرنامج. في الدرس القادم، ستتعلم كيفية الوصول فعلياً إلى العناصر التي وضعتها في الوحدات (modules).
ورقة مرجعية
لتنظيم الكود في ملفات منفصلة، قم بإنشاء ملف وحدة (module) بالاسم المطلوب. على سبيل المثال، player.rs:
// player.rs
struct Player {
name: String,
score: u32,
}
impl Player {
fn new(name: String) -> Player {
Player { name, score: 0 }
}
}
لاستخدام الوحدة في ملفك الرئيسي، قم بالتصريح عنها باستخدام الكلمة المفتاحية mod:
// main.rs
mod player;
fn main() {
// محتويات الوحدة متاحة الآن
}
يخبر التصريح mod player; لغة Rust بالعثور على player.rs وتضمينه. يجب أن يتطابق اسم الوحدة مع اسم الملف تماماً (بدون امتداد .rs).
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس 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 مع المعاملاتملخص - مشغل الوسائط