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

if let / guard let

الفكّ الآمن للاختياريات if let / guard let

if let و guard let يفكّان قيمة اختيارية بأمان: if let لفرع مشروط، وguard let للخروج المبكّر عند غياب القيمة.

if let يفحص إن كانت القيمة الاختيارية تحمل شيئًا، وإن كانت كذلك يجعلها متاحة كثابت جديد داخل الكتلة فقط. guard let يفعل نفس الفحص لكن بمنطق معكوس: إن لم تكن القيمة موجودة، ينفّذ else (الذي يجب أن يخرج من الدالة عبر return أو throw)، وإلا فالقيمة تبقى متاحة لبقية الدالة كاملة — لا داخل كتلة فقط.

الصياغة

if let name = optionalValue { /* استخدم name هنا */ }

guard let name = optionalValue else { return }
// name متاح من هنا للأسفل

📄 مثال

func greet(_ name: String?) {
    guard let name = name else {
        print("لا يوجد اسم")
        return
    }
    print("أهلًا \(name)")
}

أهم النقاط

العنصرالوظيفة
if letيجعل القيمة متاحة داخل كتلة if فقط
guard letيجعل القيمة متاحة لبقية نطاق الدالة بعد الفحص
elseمع guard: إلزامي، ويجب أن يغادر النطاق الحالي

💡 نصائح عملية

  • استخدم guard let في بداية الدالة للتحقّق المبكّر بدل تعشيش if متعدد
  • يمكن دمج عدّة شروط بفاصلة واحدة: guard let a = x, let b = y else { return }

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

  • نسيان أن else في guard يجب أن يُنهي التنفيذ (return/throw/break) وإلا خطأ ترجمة
  • استخدام if let متداخل بعمق بدل guard let الذي يبسّط الكود

خصائص ذات صلة

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