Zig Academy · درس

‏@TypeOf وتأمل الأنواع

افحصوا الأنواع للحفاظ على العمومية

الدرس 3 من 413 خطوة

‏@TypeOf وتأمل الأنواع درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.

الاستعلام عن الأنواع

غالبًا ما تحتاج الشيفرة العامة إلى معرفة نوع قيمة دون أن تكتبوه صراحةً. وتوفّر Zig ذلك عبر العنصر المضمّن @TypeOf. 🔍

يُرجع @TypeOf نوعًا

مرّروا تعبيرًا واحدًا أو أكثر إلى @TypeOf، فيُرجع نوعها المحسوب بالكامل وقت الترجمة.

const T = @TypeOf(value);

لا ينفّذ التعبير

يُفحص المعامل الممرّر إلى @TypeOf فقط ولا يُنفّذ مطلقًا. وحتى استدعاء الدالة داخله يُفحص دون تشغيله فعليًا.

التقاط نوع معامل

داخل دالة عامة، يمكنكم تسمية نوع أي معامل وإعادة استخدامه، مثلًا للتصريح عن متغير محلي مطابق.

fn echo(x: anytype) void {
    const T = @TypeOf(x);
    _ = T;
}

الحصول على اسم مقروء

يحوّل العنصر المضمّن @typeName النوع إلى سلسلة نصية مقروءة، وهو مفيد لطباعة التصحيح أو رسائل الخطأ.

const name = @typeName(i32);

انعكاس أعمق باستخدام @typeInfo

للحصول على التفاصيل الكاملة، يُرجع @typeInfo اتحادًا موسومًا يصف النوع: هل هو عدد صحيح أم struct أم مؤشر وغير ذلك.

const info = @typeInfo(i32);

التفرّع حسب نوع النوع

بما أن الناتج tagged union، يمكنكم استخدام switch عليه لمعالجة الأعداد الصحيحة والعشرية وstructs بطرق مختلفة داخل دالة عامة واحدة.

switch (@typeInfo(T)) {
    .int => {},
    else => {},
}

قراءة عرض البتات لعدد صحيح

عندما يكون النوع عددًا صحيحًا، تتضمن معلوماته حقولًا مثل bits والإشارة، ولذلك يمكنكم تكييف منطقكم مع العرض الدقيق.

const bits = @typeInfo(u16).int.bits;

يحافظ الانعكاس على عمومية الشيفرة

بفحص الأنواع بدلًا من تثبيتها في الشيفرة، تستطيع دالة واحدة خدمة أنواع إدخال متعددة على نحو صحيح. وهذا هو جوهر reflection في Zig. ✨

كل ذلك وقت الترجمة

تعمل كل العناصر المضمّنة للانعكاس أثناء البناء، ولذلك لا تضيف هذه العملية أي تكلفة وقت التشغيل إلى البرنامج النهائي.

سرد حقول struct

بالنسبة إلى struct، يكشف @typeInfo عن مصفوفة حقول يمكنكم التكرار عليها وقت الترجمة لقراءة اسم كل حقل ونوعه.

const fields = @typeInfo(Point).@"struct".fields;

تحقق سريع

لديكم قيمة x داخل دالة عامة وتريدون معرفة نوعها. ما العنصر المضمّن الذي يمنحكم إياه؟

مراجعة

استخدموا @TypeOf لمعرفة نوع قيمة، و@typeInfo لفحص بنيتها. ويتيح التبديل على تلك المعلومات لدالة واحدة التكيّف مع أنواع متعددة. 🎯

البدء مجانًا

تعلم Zig مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «‏@TypeOf وتأمل الأنواع» مجاني؟

نعم — نص درس «‏@TypeOf وتأمل الأنواع» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.

ماذا ستتعلم في «‏@TypeOf وتأمل الأنواع»؟

افحصوا الأنواع للحفاظ على العمومية تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟

لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «‏@TypeOf وتأمل الأنواع»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟

نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. دوال تتلقى نوعاً
  2. هياكل البيانات العامة
  3. ‏@TypeOf وتأمل الأنواع
  4. معاملات anytype
← العودة إلى Zig Academy