تخطَّ إلى المحتوى

switch

المطابقة القويّة switch switch

switch في Swift أقوى من غيرها: تدعم مطابقة النطاقات والصفوف والأنواع، ويجب أن تغطّي كل الحالات الممكنة.

switch تقارن قيمة مع سلسلة حالات case، وعلى عكس بعض اللغات لا تحتاج break (لا يوجد سقوط تلقائي بين الحالات). يجب أن تكون شاملة (exhaustive): تغطّي كل القيم الممكنة أو تنتهي بـ default.

تدعم مطابقة متقدّمة: نطاقات (1...5)، مطابقة أنواع (as Type)، أو استخراج قيم مرتبطة من enum.

الصياغة

switch value {
case pattern1:
    // كود
case pattern2, pattern3:
    // كود لحالتين معًا
default:
    // الباقي
}

📄 مثال

let score = 85

switch score {
case 90...100:
    print("ممتاز")
case 70..<90:
    print("جيد جدًا")
default:
    print("يحتاج تحسين")
}

أهم النقاط

العنصرالوظيفة
case a, b:مطابقة أكثر من قيمة بنفس الكتلة
case a...b:مطابقة نطاق مغلق من القيم
default:الحالة الافتراضية إن لم تُطابق أي case أخرى
fallthroughينقل التنفيذ صراحةً للحالة التالية (نادر الاستخدام)

💡 نصائح عملية

  • لا حاجة لـ break في نهاية كل case كما بلغات أخرى — Swift لا تسقط تلقائيًا
  • استخدم switch مع enum لتحصل على تحذير المترجم إن نسيت حالة

⚠️ أخطاء شائعة

  • نسيان default عند التعامل مع نوع غير محدود القيم (مثل Int) يسبّب خطأ ترجمة
  • توقّع سقوط تلقائي بين case كما في C — يحتاج fallthrough صراحةً

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار SWIFT الكامل بالعربي.