التصريح عن الأنواع الاختيارية
أضيفوا ? للسماح بغياب القيمة
التصريح عن الأنواع الاختيارية درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.
أحيانًا لا يوجد شيء
تواجه البرامج الحقيقية حالات تكون فيها القيمة مفقودة ببساطة: يفشل البحث، أو يكون أحد الحقول فارغًا. يمثّل Zig هذا الغياب بأمان وعن قصد.
النوع Optional
يمكن للنوع optional أن يحتوي إما على قيمة حقيقية من نوع معيّن، أو على القيمة الخاصة null التي تعني عدم وجود شيء.
أضف علامة استفهام في البداية
تجعل أي نوع اختياريًا بكتابة ? قبله. لذلك فإن ?i32 هو عدد صحيح قد تكون قيمته أيضًا null.
var age: ?i32 = null;القيمة تلائم النوع مباشرة
يمكن للنوع الاختياري أن يحتوي على قيمة عادية أيضًا. إذ تسند 42 إلى ?i32 بالطريقة نفسها التي تسند بها قيمة إلى i32 عادي.
var age: ?i32 = 42;null هي حالة الفراغ
الكلمة المفتاحية null هي القيمة الحرفية التي تعني عدم وجود قيمة. ولا يُسمح إلا للأنواع الاختيارية باحتوائها.
const missing: ?u8 = null;الأنواع غير الاختيارية ترفض null
لا يمكن لـ i32 عادي أن يكون null أبدًا. يوقفك المصرّف، فيظل الغياب ظاهرًا في النوع بدلًا من أن يختبئ في صورة قيمة غير صالحة.
var n: i32 = null; // error: expected i32غلّف أي نوع تريده
الأنواع الاختيارية ليست مخصصة للأعداد فقط. يمكنك جعل bool أو بنية أو شريحة أو أي نوع آخر اختياريًا بإضافة علامة الاستفهام.
var found: ?bool = null;يظل الاستنتاج فعالًا
عند إسناد قيمة اختيارية، يستنتج Zig النوع الاختياري نيابةً عنك، لذلك لا يتعين عليك دائمًا كتابته يدويًا.
const score: ?u32 = 10;لماذا لا نستخدم قيمة مميِّزة؟
في C، يحاكي المطورون الغياب باستخدام قيم مثل -1 أو مؤشر null. أما Zig فيمنحك نوعًا اختياريًا حقيقيًا، فلا يمكن الخلط بين الغياب والبيانات.
الغياب جزء من النوع
بما أن ? موجودة داخل النوع نفسه، يرى كل من يقرأ شيفرتك فورًا أن القيمة قد تكون مفقودة وأنه يجب التعامل مع هذه الحالة.
البدء بالقيمة null
من الشائع بدء النوع الاختياري بالقيمة null ثم تعبئته لاحقًا عندما تحصل فعلًا على القيمة التي تريد تخزينها.
var result: ?[]const u8 = null;تحقق سريع
كيف تعلن عن u32 قد تكون قيمته مفقودة؟
مراجعة
تعرّفت إلى الأنواع الاختيارية: اكتب ? قبل النوع للسماح بقيمة حقيقية أو null. أصبح الغياب الآن جزءًا من النوع، واضحًا وصريحًا. ❓
الأسئلة الشائعة
هل درس «التصريح عن الأنواع الاختيارية» مجاني؟
نعم — نص درس «التصريح عن الأنواع الاختيارية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.
ماذا ستتعلم في «التصريح عن الأنواع الاختيارية»؟
أضيفوا ? للسماح بغياب القيمة تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟
لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «التصريح عن الأنواع الاختيارية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟
نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التصريح عن الأنواع الاختيارية
- إلغاء التغليف بأمان باستخدام if وorelse
- المؤشرات الاختيارية و?*T
- null مقابل undefined