Swift Academy · درس

‏if let والربط المختصر

أزل غلاف القيم الاختيارية ضمن نطاق، بما في ذلك الصيغة المختصرة في Swift 5.7.

الدرس 1 من 413 خطوة

‏if let والربط المختصر درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

سبب ربط القيم الاختيارية

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

let stored: Int? = 5
if let value = stored {
    print(value)
}

صيغة if let

اكتب if let name = optional { ... }. داخل الأقواس المعقوفة، تكون name قيمة غير اختيارية بعد فك التغليف. وإذا كانت القيمة الاختيارية nil، يتم تخطي الكتلة.

let input: String? = "Swift"
if let text = input {
    print(text.count)
}

إضافة else

يمكنك إرفاق else لمعالجة حالة nil بوضوح.

let age: Int? = nil
if let a = age {
    print("Age is \(a)")
} else {
    print("No age provided")
}

الربط المختصر

منذ Swift 5.7، إذا كان للثابت الجديد الاسم نفسه الذي تحمله القيمة الاختيارية، يمكنك كتابة if let value فقط من دون الجزء = value.

let score: Int? = 90
if let score {
    print(score)
}

الربط المختصر مقابل التقليدي

الربط المختصر if let score مطابق تمامًا للتعبير if let score = score. وهو يقلل التكرار عندما تتطابق الأسماء.

let nickname: String? = "Sam"
if let nickname {
    print("Hi \(nickname)")
}

نطاق الربط

لا يوجد الثابت بعد فك التغليف إلا داخل جسم if. أما خارجه، فتبقى القيمة الاختيارية اختيارية.

let maybe: Int? = 7
if let maybe {
    print(maybe + 1)
}
print(maybe as Any)

الربط من التحويلات

يتوافق if let بصورة طبيعية مع التحويلات القابلة للفشل، مثل Int(string).

let raw = "42"
if let number = Int(raw) {
    print(number * 2)
} else {
    print("Not a number")
}

ربط قيم القاموس

استخدم if let لقراءة قيمة من قاموس بأمان، إذ قد تكون هذه القيمة مفقودة.

let ages = ["Ann": 30]
if let annAge = ages["Ann"] {
    print(annAge)
}
if let bobAge = ages["Bob"] {
    print(bobAge)
} else {
    print("Bob not found")
}

ربط نسخة قابلة للتغيير

استخدم if var عندما تريد تعديل القيمة بعد فك تغليفها محليًا. ولا يؤثر التغيير في القيمة الاختيارية الأصلية.

let count: Int? = 10
if var c = count {
    c += 5
    print(c)
}

تجنب التداخل

يمكنك وضع المنطق الذي يعتمد على القيمة بأمان داخل كتلة الربط، وتجنب فك التغليف الإجباري باستخدام !.

let name: String? = "Lia"
if let name {
    let upper = name.uppercased()
    print(upper)
}

لماذا لا نستخدم فك التغليف الإجباري

يتسبب فك التغليف الإجباري باستخدام ! في تعطل البرنامج إذا كانت القيمة الاختيارية nil. أما if let فهو البديل الآمن الذي لا يتسبب في التعطل.

let value: Int? = nil
if let value {
    print(value)
} else {
    print("Safe: was nil")
}

تحقق سريع

اختبر ربط القيم الاختيارية.

مراجعة: if let والربط المختصر

يفك if let تغليف القيمة الاختيارية بأمان إلى ثابت محلي، ولكن فقط عند وجود قيمة. ويجنبك الاختصار في Swift 5.7، if let name، تكرار الاسم. ويفضَّل استخدامه بدلًا من فك التغليف الإجباري.

let x: Int? = 3
if let x { print(x) }
البدء مجانًا

تعلم Swift مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
122
الدروس
409

الأسئلة الشائعة

هل درس «‏if let والربط المختصر» مجاني؟

نعم — نص درس «‏if let والربط المختصر» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «‏if let والربط المختصر»؟

أزل غلاف القيم الاختيارية ضمن نطاق، بما في ذلك الصيغة المختصرة في Swift 5.7. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «‏if let والربط المختصر»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ‏if let والربط المختصر
  2. ‏guard let للخروج المبكر
  3. ربط عدة قيم اختيارية
  4. النمط الاختياري في switch و for
← العودة إلى Swift Academy