0Pricing
Swift Academy · درس

النمط الاختياري في switch و for

طابق القيم الاختيارية باستخدام أنماط case let.

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

القيم الاختيارية في switch

يمكنك استخدام switch مباشرةً مع قيمة اختيارية. تطابق الحالتان .some(value) و.none قيمة موجودة أو nil.

let value: Int? = 7
switch value {
case .some(let n):
    print("Got \(n)")
case .none:
    print("Nothing")
}

نمط ? المختصر

كتابة case let x? هي صيغة مختصرة لـ .some(x). وتعني علامة ? اللاحقة «فك التغليف إلى x».

let value: String? = "Swift"
switch value {
case let text?:
    print(text.uppercased())
case nil:
    print("none")
}

مطابقة nil مباشرةً

يمكنك مطابقة حالة nil باستخدام القيمة الحرفية nil بدلًا من .none، وهو ما يجعل القراءة أكثر طبيعية.

let value: Int? = nil
switch value {
case let n?:
    print(n)
case nil:
    print("no value")
}

مطابقة قيم محددة

يمكنك مزج القيم المحددة بعد فك تغليفها مع نمط فك التغليف العام.

let status: Int? = 404
switch status {
case 200?:
    print("OK")
case 404?:
    print("Not Found")
case let code?:
    print("Other: \(code)")
case nil:
    print("No status")
}

for case let في الحلقات

عند التكرار على القيم الاختيارية، تتخطى for case let x? in array تلقائيًا العناصر nil وتفك تغليف بقية العناصر.

let items: [Int?] = [1, nil, 3, nil, 5]
for case let n? in items {
    print(n)
}

آلية ترشيح for case

لا يطابق النمط case let n? سوى العناصر غير المساوية لـ nil، لذلك يُنفَّذ جسم الحلقة للقيم الموجودة فقط.

let names: [String?] = ["Ann", nil, "Bo"]
for case let name? in names {
    print(name.count)
}

المكافئ باستخدام if let

يمكنك تحقيق النتيجة نفسها باستخدام if let داخل حلقة عادية، لكن for case let x? أكثر إيجازًا.

let items: [Int?] = [2, nil, 4]
for item in items {
    if let item {
        print(item)
    }
}

مطابقة القيم الاختيارية للتعدادات

يمكن تركيب نمط القيم الاختيارية مع أنماط أخرى، مثل مطابقة قيم محددة داخل القيمة الاختيارية.

let codes: [Int?] = [1, 2, nil, 3]
for case let c? in codes where c % 2 == 1 {
    print("odd: \(c)")
}

where مع for case

أضف عبارة where لمزيد من الترشيح بعد فك التغليف في حلقة for case.

let scores: [Int?] = [40, nil, 80, 95]
for case let s? in scores where s >= 80 {
    print("high: \(s)")
}

switch مع where

داخل switch على قيمة اختيارية، يمكن تحسين عملية الربط بعد فك التغليف باستخدام عبارة where.

let value: Int? = 12
switch value {
case let n? where n > 10:
    print("big: \(n)")
case let n?:
    print("small: \(n)")
case nil:
    print("none")
}

لماذا نستخدم هذه الأنماط

تتيح لك أنماط القيم الاختيارية معالجة القيم الموجودة والمفقودة ضمن بنية واحدة شاملة، مما يقلل فحوص nil المتناثرة.

let result: String? = nil
switch result {
case let r?:
    print("Value: \(r)")
case nil:
    print("Empty result")
}

تحقق سريع

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

خلاصة: أنماط القيم الاختيارية في switch وfor

استخدم case let x?، وهي صيغة مختصرة لـ .some، وcase nil في switch، واستخدم for case let x? للتكرار على العناصر غير المساوية لـ nil مع فك تغليفها، ويمكن تحسين ذلك اختياريًا باستخدام where.

let xs: [Int?] = [10, nil, 20]
for case let x? in xs { print(x) }

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

هل درس «النمط الاختياري في switch و for» مجاني؟

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

ماذا ستتعلم في «النمط الاختياري في switch و for»؟

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

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

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

كم من الوقت يستغرق درس «النمط الاختياري في switch و for»؟

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

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

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

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

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