مجموعات الأخطاء واتحاد !T
تعامَلوا مع الأخطاء كقيم من الدرجة الأولى
مجموعات الأخطاء واتحاد !T درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.
الأخطاء قيم
لا توجد استثناءات في Zig. فالـخطأ مجرد قيمة عادية يمكن لدالتكم إرجاعها، ولذلك يكون الفشل ظاهرًا في الشيفرة.
تصريح بمجموعة أخطاء
مجموعة الأخطاء هي مجموعة مُسمّاة من الأخطاء المحتملة. وتسردون متغيراتها كما تفعلون مع تعداد للأمور التي قد تسوء.
const FileError = error{
NotFound,
PermissionDenied,
};الإشارة إلى خطأ واحد
يمكن الوصول إلى كل عضو في مجموعة الأخطاء باستخدام نقطة. فالقيمة FileError.NotFound خطأ محدد واحد يمكنكم إرجاعه.
return FileError.NotFound;مجموعات أخطاء مجهولة
لا تحتاجون دائمًا إلى اسم. تؤدي كتابة error{Empty} مضمنةً إلى إنشاء مجموعة أخطاء صغيرة لمرة واحدة في موضع استخدامها.
return error.Empty;علامة التعجب تعني احتمال وجود خطأ
تنشئ ! في النوع اتحادًا مع الأخطاء. فالنوع الذي يسبقها هو قيمة النجاح، وقد يظهر خطأ مكانها.
FileError!u32اقرؤوا !T بصوت عالٍ
يمكنكم قراءة !u32 على أنها u32 أو خطأ. وتحمل القيمة الواحدة النتيجتين المحتملتين، لذا يجب على المستدعِين اختيار إحداهما.
جانبا الاتحاد
لاتحاد الأخطاء شكلان فقط وقت التشغيل: حمولة صالحة من النوع T، أو أحد أخطاء المجموعة. وليس كلاهما معًا.
ضعوا المجموعة قبل علامة التعجب
ضعوا مجموعة الأخطاء على يسار ! لتحديد الأخطاء المسموح بها بدقة. وهذا يوثق الفشل مباشرةً في النوع.
fn parse(s: []const u8) FileError!u32 {
// ...
}دمج مجموعات الأخطاء
يجمع العامل || بين مجموعتي أخطاء في مجموعة واحدة. ويسمح ذلك للدالة بقبول أخطاء من عدة مصادر دفعة واحدة.
const AllError = FileError || NetError;anyerror هي المجموعة الأشمل
تحتوي anyerror المضمّنة على كل خطأ ممكن. وهي مريحة، لكنها تفقد دقة المجموعة المُسمّاة، لذا استخدموها باعتدال.
fn risky() anyerror!void {}لماذا تفيد المجموعات
بما أن الأخطاء جزء من النوع، يعرف المصرّف كل فشل يمكن أن تنتجه الدالة. ولا يفوتكم أي شيء من دون معالجة.
تحقق سريع
ترون النوع FileError!u32 في دالة. ماذا يصف؟
مراجعة
تعرّفتم إلى مجموعات الأخطاء، واتحاد !T، ودمج المجموعات باستخدام ||، وanyerror. الأخطاء قيم عادية يتتبعها نظام الأنواع نيابةً عنكم. ✅
تعلم Zig مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «مجموعات الأخطاء واتحاد !T» مجاني؟
نعم — نص درس «مجموعات الأخطاء واتحاد !T» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.
ماذا ستتعلم في «مجموعات الأخطاء واتحاد !T»؟
تعامَلوا مع الأخطاء كقيم من الدرجة الأولى تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟
لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «مجموعات الأخطاء واتحاد !T»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟
نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مجموعات الأخطاء واتحاد !T
- إرجاع الأخطاء من الدوال
- نشر حالات الفشل باستخدام try
- مجموعات الأخطاء المستنتجة