Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

أساسيات الوحدات البرمجية

جزء من قسم 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).

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming