استخدام switch مع Enums بشكل شامل
عالج كل حالة يتحقق منها المصرّف
استخدام switch مع Enums بشكل شامل درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
يحب switch استخدام Enums
عندما تكون القيمة واحدة من عدة خيارات، يتعامل switch مع كل حالة بوضوح. وتشكّل Enums وswitch زوجًا طبيعيًا.
Basic switch
أدرج case واحدًا لكل عضو من أعضاء enum، ثم اكتب الكود الذي سيُشغّل من أجله. يطابق Dart القيمة مع case المناسب ويشغّل ذلك الفرع.
switch (status) {
case Status.pending: print("Waiting");
}الشمولية تعني تغطية كل حالة
عند استخدام switch مع enum، يتحقق Dart من أنك عالجت كل عضو. وإذا أغفلت عضوًا، يحذرك المحلل قبل التشغيل.
لماذا تفيد الشمولية
شبكة الأمان هذه قيّمة جدًا: فإذا أضفت عضوًا جديدًا إلى enum لاحقًا، يشير compiler إلى كل switch يجب تحديثه.
تعبير switch
يعيد expression الخاص بـ switch قيمة بدلًا من تشغيل عبارات. استخدم السهم السميك لربط كل case بنتيجة.
var label = switch (status) {
Status.pending => "Waiting",
};حالات الأسهم مختصرة
في تعبير switch، تستخدم كل حالة الصيغة case-value => result. وتفصل الفواصل بينها، مما ينشئ جدول بحث مختصرًا.
Status.shipped => "On the way",لا يوجد Fall-Through في Dart
على خلاف بعض اللغات، لا يحدث fall through بين حالات Dart. إذ تشغّل كل حالة كودها الخاص فقط، لذلك لا تحتاج إلى break زائد.
الافتراضي الشامل
تلتقط حالة default أو _ أي شيء لم تدرجه. لكن عند التعامل مع enums، يُفضّل معالجة كل عضو لتحقيق الأمان الكامل.
default => "Unknown",يعطّل Default عملية التحقق
تؤدي إضافة default شامل إلى استيفاء switch، فيتوقف Dart عن التحذير من الأعضاء المفقودين. فاستخدمه باعتدال.
مشاركة فرع واحد
اسمح لعضوين بمشاركة فرع من خلال إدراجهما معًا. إذ يشغّل كلاهما الكود نفسه دون تكراره.
case Status.shipped || Status.delivered: print("Sent");التبديل الشامل عادة
إن تخطي default عند استخدام enums ميزة وليس عبئًا. فهو يحول compiler إلى قائمة تحقق للتغييرات المستقبلية.
تحقق سريع
ماذا يمنحك التبديل الشامل على enum؟
مراجعة: Exhaustive switch
رأيت كيف يتعامل switch مع كل حالة من حالات enum، ويعيد القيم باعتباره expression، ويحذرك عند عدم معالجة عضو. تخطَّ default لتحقيق الأمان. 🎯
الأسئلة الشائعة
هل درس «استخدام switch مع Enums بشكل شامل» مجاني؟
نعم — نص درس «استخدام switch مع Enums بشكل شامل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «استخدام switch مع Enums بشكل شامل»؟
عالج كل حالة يتحقق منها المصرّف تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «استخدام switch مع Enums بشكل شامل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التصريح بـEnums عادية واستخدامها
- قيم Enum وindex وname
- Enums محسّنة بالحقول والطرق
- استخدام switch مع Enums بشكل شامل