ربط عدة قيم اختيارية
أزل غلاف عدة قيم اختيارية في شرط واحد.
ربط عدة قيم اختيارية درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.
ربط عدة قيم دفعة واحدة
يمكنك فك تغليف عدة قيم اختيارية في عبارة if let واحدة عبر فصلها بفواصل. يجب ألا تكون أي منها nil حتى يُنفَّذ الجسم.
let a: Int? = 1
let b: Int? = 2
if let a, let b {
print(a + b)
}إما الكل أو لا شيء
إذا كانت أي قيمة اختيارية في القائمة تساوي nil، فسيتم تخطي الكتلة بأكملها. إنها عملية فك تغليف تتم إما بالكامل أو لا تتم إطلاقًا.
let first: String? = "Ada"
let last: String? = nil
if let first, let last {
print("\(first) \(last)")
} else {
print("Missing a name")
}الصيغة التقليدية
تستخدم الصيغة الكاملة عمليات إسناد صريحة: if let a = optA, let b = optB. وتحذف الصيغة المختصرة أسماء المتغيرات المكررة.
let optX: Int? = 10
let optY: Int? = 20
if let x = optX, let y = optY {
print(x * y)
}مزج عمليات الربط والشروط
يمكنك التناوب بين الشروط المنطقية وعمليات الربط. وقد تستخدم الشروط اللاحقة القيم التي فُك تغليفها سابقًا.
let age: Int? = 25
if let age, age >= 18 {
print("Adult: \(age)")
}عمليات فك تغليف تعتمد على بعضها
يمكن لعملية ربط لاحقة أن تعتمد على عملية سابقة، إذ تُفك القيم من اليسار إلى اليمين.
let dict = ["key": "42"]
if let text = dict["key"], let number = Int(text) {
print(number + 8)
}الترتيب مهم
تُقيَّم عمليات الربط بالترتيب وتتوقف عند أول فشل. فإذا فشلت العملية الأولى، فلن تُقيَّم العمليات اللاحقة إطلاقًا.
func parse(_ s: String?) -> Int? {
print("parsing")
return s.flatMap { Int($0) }
}
let a: Int? = nil
if let a, let b = parse("5") {
print(a + b)
} else {
print("skipped")
}عمليات متعددة في guard
يعمل الأسلوب نفسه المعتمد على الفصل بفواصل مع guard let، إذ يفك تغليف عدة قيم قبل المتابعة.
func makeFullName(_ first: String?, _ last: String?) -> String {
guard let first, let last else { return "Unknown" }
return "\(first) \(last)"
}
print(makeFullName("Grace", "Hopper"))دمج عمليات التحويل
يُعد الربط المتعدد مفيدًا جدًا لتحليل عدة مدخلات نصية دفعة واحدة.
let wInput = "4"
let hInput = "5"
if let w = Int(wInput), let h = Int(hInput) {
print("Area: \(w * h)")
}تجنب تداخل if let
من دون الربط المتعدد، ستحتاج إلى تداخل كتل if let، مما ينشئ هرمًا. وتعمل الصيغة المفصولة بفواصل على تسطيح هذا التداخل.
let p: Int? = 2
let q: Int? = 3
if let p {
if let q {
print(p + q)
}
}النسخة المسطّحة
إليك المنطق نفسه من المثال المتداخل السابق، مكتوبًا بصيغة مسطّحة باستخدام ربط متعدد واحد.
let p: Int? = 2
let q: Int? = 3
if let p, let q {
print(p + q)
}مع شرط لاحق
يمكنك إنهاء العبارة بفحص منطقي يتحقق من صحة النتيجة المجمعة.
let xs = "3"
let ys = "9"
if let x = Int(xs), let y = Int(ys), x < y {
print("\(x) is less than \(y)")
}تحقق سريع
اختبر الربط المتعدد للقيم الاختيارية.
خلاصة: ربط عدة قيم اختيارية
فك تغليف عدة قيم اختيارية في عبارة if let أو guard let واحدة باستخدام الفواصل. فالعملية تتم إما بالكامل أو لا تتم، وتُقيَّم من اليسار إلى اليمين، وتدعم عمليات الربط التابعة، ويمكنها مزج الشروط المنطقية.
let a: Int? = 1
let b: Int? = 2
if let a, let b { print(a + b) }الأسئلة الشائعة
هل درس «ربط عدة قيم اختيارية» مجاني؟
نعم — نص درس «ربط عدة قيم اختيارية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.
ماذا ستتعلم في «ربط عدة قيم اختيارية»؟
أزل غلاف عدة قيم اختيارية في شرط واحد. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «ربط عدة قيم اختيارية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- if let والربط المختصر
- guard let للخروج المبكر
- ربط عدة قيم اختيارية
- النمط الاختياري في switch و for