Swift Academy · درس

ربط if let وguard let

فكّ تغليف القيم الاختيارية بأمان باستخدام أنماط الربط الشرطي والخروج المبكر

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

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

مرحبًا

تمثل القيم الاختيارية قيمًا قد تكون موجودة أو غير موجودة. ويُعد إلغاء التغليف الآمن باستخدام `if let` و`guard let` أساس كتابة تعليمات Swift البرمجية الخالية من الأعطال.

ما المقصود بـ Optional؟

```swift var name: String? = "Alice" // has a value var age: Int? = nil // no value ``` تغلّف Optional قيمةً في `.some(value)` أو `.none`. ويجب إلغاء تغليفها قبل استخدامها.

if let — الربط الشرطي

```swift if let name = name { print("Hello, \(name)!") // name is String here } else { print("No name provided") } ``` داخل كتلة `if`، تكون قيمة `name` من النوع `String` وغير اختيارية.

if let بالاسم نفسه (Swift 5.7+)

منذ Swift 5.7، يمكنك إعادة استخدام اسم المتغير نفسه: ```swift if let name { print("Hello, \(name)!") } ``` هذه صيغة أقصر وأنظف — فلا حاجة إلى كتابة `let name = name`.

guard let — الخروج المبكر

تُلغي `guard let` التغليف وتخرج مبكرًا إذا كانت القيمة nil: ```swift func greet(_ name: String?) { guard let name else { return } print("Hello, \(name)!") } ``` بعد عبارة guard، تكون `name` مضمونة بأنها ليست nil لبقية الدالة.

تسلسل عمليات الربط

ألغِ تغليف عدة قيم اختيارية في عبارة واحدة: ```swift if let first = firstName, let last = lastName { print("\(first) \(last)") } guard let id = userId, let token = authToken else { return } ``` يجب أن تنجح جميع عمليات الربط حتى تُنفَّذ الكتلة.

إضافة شرط where

اجمع بين إلغاء التغليف وشرط: ```swift if let score = rawScore, score >= 60 { print("Passed with \(score)") } ``` يُقيَّم الربط والشرط معًا، وهذا أوضح من استخدام `if` متداخل.

guard let في مقابل if let

استخدم `if let` عندما تحتاج إلى القيمة في كلا الفرعين. استخدم `guard let` للتحقق من الشروط المسبقة والخروج مبكرًا: ```swift // if let: handle both cases if let data = response.data { process(data) } else { showError() } // guard: ensure requirements are met guard let data = response.data else { showError(); return } process(data) ```

if let المتداخل في مقابل guard

يصعب قراءة `if let` المتداخل بعمق، والمعروف باسم «هرم العذاب»: ```swift if let a = aOpt { if let b = bOpt { if let c = cOpt { process(a, b, c) } } } ``` أعد هيكلته باستخدام `guard`: ```swift guard let a = aOpt, let b = bOpt, let c = cOpt else { return } process(a, b, c) ```

التحقق دون ربط

استخدم `!= nil` عندما تحتاج فقط إلى معرفة ما إذا كانت القيمة موجودة: ```swift if token != nil { showLoggedInUI() } ``` لكن فضّل `if let` عندما تحتاج أيضًا إلى القيمة بعد إلغاء تغليفها.

تحقق سريع

ما العبارة التي تخرج من النطاق الحالي إذا كانت القيمة الاختيارية `nil`؟

مراجعة

أهم النقاط: • `if let x = optional` — انتقال آمن إلى سياق تكون فيه القيمة غير nil • `guard let x = optional else { return }` — خروج مبكر عند الفشل • سلْسِل عمليات ربط متعددة باستخدام الفواصل • يتجنب `guard let` هرم الشروط المتداخلة بعمق • في Swift 5.7 فأحدث: `if let x` (صيغة مختصرة بالاسم نفسه) التالي: الدمج مع nil والعامل ??‎.
البدء مجانًا

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

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

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

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

هل درس «ربط if let وguard let» مجاني؟

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

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

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

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

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

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

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

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

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

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

  1. ربط if let وguard let
  2. الدمج عند nil والعامل الثلاثي مع Optionals
  3. العامل Optional Chaining ?.
  4. القيم الاختيارية المفكوكة ضمنيًا ومتى ينبغي تجنّبها
← العودة إلى Swift Academy