لماذا نحتاج إلى ملف mod.rs في Rust؟ اشرح بمثال
مرحبًا! لقد بدأت للتو في تعلم Rust وأحاول فهم تنظيم الكود. لاحظت أنه في العديد من مشاريع Rust توجد مجلدات بداخلها ملف mod.rs. على سبيل المثال، رأيت الهيكل التالي:
```
src/
main.rs
utils/
mod.rs
helpers.rs
```
حاولت ببساطة إنشاء مجلد ووضع ملفات تحتوي على دوال فيه، لكن المترجم يشتكي إذا لم يكن هناك mod.rs. مع أنني قرأت أنه في الإصدارات الجديدة من Rust يمكن استخدام شيء آخر.
أرجو التوضيح:
1. لماذا نحتاج إلى mod.rs؟
2. ماذا يفعل؟
3. كيف نعلن الوحدات (modules) بشكل صحيح؟
4. هل هناك بدائل في Rust الحديث؟
إليك مثال على الكود الخاص بي الذي لا يعمل:
```rust
// main.rs
mod utils; // خطأ: لا يمكن العثور على الوحدة
fn main() {
utils::say_hello();
}
```
في مجلد utils يوجد ملف helpers.rs يحتوي على الدالة say_hello(). ظننت أن Rust سيجد الملفات في المجلد تلقائيًا، لكن لا. أرجو شرح كيفية تنظيم الوحدات بشكل صحيح ولماذا نحتاج إلى mod.rs.