تجنب العوامل الثلاثية المتداخلة
حافظ على سهولة قراءة المنطق الشرطي وصيانته.
تجنب العوامل الثلاثية المتداخلة درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.
متى تفيد المعاملات الثلاثية
يكون المعامل الثلاثي المفرد واضحًا ومقروءًا عند إجراء اختيار بسيط بين احتمالين. لكن المشكلة تبدأ عند تداخل معامل ثلاثي داخل آخر.
let temp = 10
let label = temp < 0 ? "Freezing" : "Above zero"
print(label)معامل ثلاثي متداخل
يمكنكم تداخل المعاملات الثلاثية لمعالجة أكثر من حالتين، لكن النتيجة سرعان ما تصبح صعبة القراءة.
let score = 75
let grade = score >= 90 ? "A" : score >= 80 ? "B" : score >= 70 ? "C" : "F"
print(grade)لماذا يضر التداخل
تجبر المعاملات الثلاثية المتداخلة القارئ على تتبع أي نقطتين تتوافقان مع أي علامة استفهام ذهنيًا. وقد يغيّر خطأ صغير السلوك دون تنبيه.
فضّلوا الوضوح على الاستعراض.
let value = 5
let text = value > 0 ? "positive" : value < 0 ? "negative" : "zero"
print(text)إعادة الهيكلة إلى if/else if
تُقرأ عملية اتخاذ القرار نفسها متعددة المسارات بصورة أفضل بكثير عند كتابتها كسلسلة if / else if / else. ويكون كل فرع في سطر مستقل.
let score = 75
let grade: String
if score >= 90 {
grade = "A"
} else if score >= 80 {
grade = "B"
} else if score >= 70 {
grade = "C"
} else {
grade = "F"
}
print(grade)استخدام switch بدلًا منه
بالنسبة إلى القرارات القائمة على النطاقات، غالبًا ما يكون استخدام switch على النطاقات أنظف خيار على الإطلاق.
let score = 85
let grade: String
switch score {
case 90...100: grade = "A"
case 80..<90: grade = "B"
case 70..<80: grade = "C"
default: grade = "F"
}
print(grade)استخراج دالة
عندما يُعاد استخدام قرار ما، انقلوه إلى دالة ذات اسم واضح. وسيصبح موضع استدعائها موضحًا لنفسه.
func gradeLetter(for score: Int) -> String {
if score >= 90 { return "A" }
if score >= 80 { return "B" }
if score >= 70 { return "C" }
return "F"
}
print(gradeLetter(for: 64))لا بأس باستخدام معامل ثلاثي واحد
القاعدة ليست «لا تستخدموا المعاملات الثلاثية أبدًا». فالمعامل الثلاثي المفرد والمسطح لاختيار واضح بين احتمالين يُعد أسلوبًا اصطلاحيًا تمامًا في Swift.
let isAdmin = true
let role = isAdmin ? "Admin" : "User"
print(role)قابلية القراءة أهم من الإيجاز
ليست الشيفرة الأقصر أفضل دائمًا. فإذا اضطر المراجع إلى التوقف لفك معنى سطر ما، فاختاروا الصيغة الأطول والأوضح.
let stock = 0
let availability = stock > 0 ? "In stock" : "Sold out"
print(availability)تجنب الآثار الجانبية في المعاملات الثلاثية
أبقوا كلا فرعي المعامل الثلاثي مقتصرًا على قيم بسيطة. إذ إن إخفاء استدعاءات الدوال ذات الآثار الجانبية داخل معامل ثلاثي يجعل الشيفرة مفاجئة.
let level = 2
let points = level == 1 ? 100 : 200
print(points)الدمج مع الشروط ذات الأسماء
إذا كان الشرط معقدًا، فخزّنوه أولًا في Bool ذي اسم واضح، ثم استخدموا معاملًا ثلاثيًا واحدًا. فالاسم يوضح القصد.
let age = 20
let hasLicense = true
let eligible = age >= 18 && hasLicense
let result = eligible ? "Approved" : "Denied"
print(result)مثال واضح متعدد المسارات
قارنوا سلسلة if المقروءة هذه بالمعامل الثلاثي المتداخل السابق. فكلاهما ينتج الإجابة نفسها، لكن هذه السلسلة سهلة الصيانة.
let value = -3
let sign: String
if value > 0 {
sign = "positive"
} else if value < 0 {
sign = "negative"
} else {
sign = "zero"
}
print(sign)تحقق سريع
اختاروا أفضل ممارسة.
مراجعة: تجنب المعاملات الثلاثية المتداخلة
استخدموا معاملًا ثلاثيًا واحدًا ومسطحًا للاختيارات الثنائية. ولثلاث حالات أو أكثر، استخدموا if/else if أو switch. أعطوا الأولوية لقابلية القراءة حتى تتمكنوا مستقبلًا من تتبع المنطق بسهولة.
let n = 7
let parity = n % 2 == 0 ? "even" : "odd"
print(parity)الأسئلة الشائعة
هل درس «تجنب العوامل الثلاثية المتداخلة» مجاني؟
نعم — نص درس «تجنب العوامل الثلاثية المتداخلة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- قيم Bool والتعبيرات
- العامل الشرطي الثلاثي
- تجنب العوامل الثلاثية المتداخلة
- الأساليب المنطقية والتبديل