المعاملات مقابل الوسيطات
قيم وقت الترجمة مقابل قيم وقت التشغيل
المعاملات مقابل الوسيطات درس مجاني في Mojo Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Mojo Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Mojo Academy 4 دروس في المجموع.
نوعان من المدخلات
يمكن لدوال Mojo استقبال نوعين من المدخلات: معاملات معروفة وقت الترجمة، ووسيطات معروفة وقت التشغيل. ومعرفة الفرق بينهما هي المفتاح.
توجد الوسيطات وقت التشغيل
الوسيط قيمة عادية تمررها عند تشغيل البرنامج. ويمكن أن يتغير رقمه الفعلي في كل مرة تستدعي فيها الدالة.
fn square(x: Int) -> Int:
return x * xتوجد المعاملات وقت الترجمة
المعامل قيمة يعرفها المترجم مسبقًا قبل تشغيل البرنامج. وهي ثابتة ومدمجة مباشرة في التعليمات البرمجية المُولَّدة. ⚙️
الأقواس المربعة مقابل الأقواس
يفصل Mojo بينهما بصريًا: توضع المعاملات بين أقواس مربعة، بينما تبقى الوسيطات بين الأقواس المعتادة.
fn repeat[count: Int](msg: String):
print(msg)قراءة التوقيع
في repeat[count: Int](msg: String)، تُحدَّد count وقت الترجمة، بينما تُمرَّر msg لاحقًا عند استدعاء الدالة فعليًا.
وقت الترجمة يعني مرحلة أسبق
فكّر في وقت الترجمة بوصفه اللحظة التي يترجم فيها Mojo تعليماتك البرمجية، قبل تشغيلها بوقت طويل. وتُحدَّد المعاملات في تلك المرحلة المبكرة.
لماذا نفصل بينهما
يتيح إبقاء قيم وقت الترجمة ووقت التشغيل منفصلة للمترجم تخصيص التعليمات البرمجية وتحسينها بطرق لا يستطيع وقت التشغيل تنفيذها.
تمرير معامل
تزوّد الدالة بـ معامل بين أقواس مربعة في موضع الاستدعاء، تمامًا كما تزوّدها بالوسيطات بين الأقواس التي تليه مباشرة.
repeat[3]("hi")يجب أن تكون المعاملات معروفة
يجب أن تكون قيمة المعامل ثابتًا وقت الترجمة. ولا يمكنك تمرير رقم لم تحسبه إلا أثناء تشغيل البرنامج.
مثال مألوف
يأخذ النوع المدمج SIMD نوع عناصره وعرضه بوصفهما معاملين، ثم يحتفظ داخله بأرقام فعلية بوصفها قيمًا وقت التشغيل.
var v = SIMD[DType.int32, 4](1, 2, 3, 4)النموذج الذهني
تخيّل موضعين: موضع الأقواس المربعة لحقائق وقت الترجمة، وموضع الأقواس لبيانات وقت التشغيل. ويتعامل Mojo معهما بطرق مختلفة جدًا.
تحقق سريع
ميّز بين المعاملات والوسيطات في Mojo.
مراجعة
تعلمت الفرق: المعاملات قيم وقت الترجمة وتوضع بين أقواس مربعة، أما الوسيطات فقيم وقت التشغيل وتوضع بين الأقواس. وهذا الفصل هو ما يمنح Mojo سرعته. 🎯
الأسئلة الشائعة
هل درس «المعاملات مقابل الوسيطات» مجاني؟
نعم — نص درس «المعاملات مقابل الوسيطات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Mojo Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Mojo Academy 4 دروس في المجموع.
ماذا ستتعلم في «المعاملات مقابل الوسيطات»؟
قيم وقت الترجمة مقابل قيم وقت التشغيل تتمرن على Mojo Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Mojo Academy؟
لا تُشترط خبرة سابقة. Mojo Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «المعاملات مقابل الوسيطات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Mojo Academy هذا؟
نعم. كل درس في Mojo Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المعاملات مقابل الوسيطات
- الدوال ذات المعاملات
- البنى ذات المعاملات
- لماذا تمنح الترجمة سرعة أكبر