معاملات وقيم comptime
مرّروا القيم الموجودة وقت الترجمة
معاملات وقيم comptime درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.
يجب معرفة بعض الوسائط مبكرًا
تحتاج الدالة أحيانًا إلى وسيط يستطيع المصرّف رؤيته، لا البرنامج الجاري فحسب. يتيح لكم Zig تعليم هذا الوسيط باستخدام comptime. 🧩
تعليم وسيط باستخدام comptime
اكتبوا comptime قبل اسم الوسيط لفرض معرفة قيمته في وقت الترجمة. ويجب على المستدعي تمرير قيمة معروفة.
fn repeat(comptime n: usize) void {}يوفّر المستدعي قيمة معروفة
لا يقبل وسيط comptime إلا القيم التي يعرفها المصرّف مسبقًا، مثل القيم الحرفية أو الثوابت الأخرى في وقت الترجمة.
repeat(3);تُرفض قيم وقت التشغيل
إذا مرّرتم قيمة لا تُعرف إلا في وقت التشغيل إلى وسيط comptime، فسيبلغ Zig عن خطأ ترجمة واضح.
comptime داخل جسم الدالة
يمكنكم أيضًا فرض تقييم تعبير محلي مبكرًا. تُنفَّذ كتلة comptime أثناء الترجمة وتنتج ثابتًا.
const table = comptime buildTable();comptime var لحالة وقت الترجمة
إنّ comptime var متغير قابل للتغيير لا يوجد إلا أثناء الترجمة. استخدموه لتجميع قيمة أثناء تنفيذ كود وقت الترجمة.
comptime var sum = 0;تخصص القيم المعروفة الدوال
بما أن وسيط comptime ثابت، يستطيع Zig إنشاء نسخة مخصصة من الدالة لتلك القيمة تحديدًا.
اخلطوا بين comptime والوسائط العادية
يمكن للدالة قبول النوعين معًا: وسيط comptime للجزء المعروف، ووسائط عادية لبيانات وقت التشغيل.
fn scale(comptime factor: u8, x: u32) u32 {
return x * factor;
}تحققوا من الوسائط مبكرًا
بما أن القيمة معروفة، يمكنكم التحقق منها أثناء الترجمة وإيقاف البناء إذا كانت خاطئة، قبل تشغيل البرنامج أصلًا. ✅
لا تكلفة في وقت التشغيل
يحدث العمل الذي يقوده وسيط comptime أثناء البناء. ويحمل الملف الثنائي الناتج الإجابة، دون ترك أي شيء لحسابه.
يكون الوسيط ثابتًا داخل الدالة
يتصرف وسيط comptime داخل جسم الدالة كأنه ثابت، لذا يمكنكم استخدامه في أحجام المصفوفات وغيرها من مواضع وقت الترجمة.
fn buffer(comptime n: usize) [n]u8 {
return undefined;
}تحقق سريع
تعلن دالة عن وسيط بالصيغة comptime n: usize. ما نوع القيمة التي يجب على المستدعي تمريرها؟
مراجعة
علّموا الوسيط باستخدام comptime لفرض أن تكون قيمته معروفة في وقت الترجمة. عندها يستطيع Zig التحقق منها وتخصيص الدالة دون تكلفة في وقت التشغيل. 🎯
الأسئلة الشائعة
هل درس «معاملات وقيم comptime» مجاني؟
نعم — نص درس «معاملات وقيم comptime» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.
ماذا ستتعلم في «معاملات وقيم comptime»؟
مرّروا القيم الموجودة وقت الترجمة تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟
لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «معاملات وقيم comptime»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟
نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- وقت الترجمة مقابل وقت التشغيل
- معاملات وقيم comptime
- الأنواع قيم comptime
- inline for والحلقات المفكوكة