معامل دمج Nil
جزء من قسم الأساسيات في رحلة Swift على Coddy. الدرس 14 من 86.
أحيانًا تريد فقط توفير قيمة default عندما يكون optional هو nil، من دون كتابة عدة أسطر من التعليمات البرمجية. يُجري عامل الدمج مع nil في Swift (??) ذلك تمامًا. فهو يفك تغليف optional إذا كانت له قيمة، أو يُرجع قيمة افتراضية إذا كان nil.
let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guestبما أن nickname تساوي nil، يُرجع العامل "Guest" بدلًا من ذلك. إذا كانت nickname تحتوي على قيمة، فستُستخدم تلك القيمة.
let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoderعامل دمج nil مثالي للأسطر البرمجية الفردية التي تحتاج فيها إلى قيمة بديلة. إنه أكثر ترتيبًا من كتابة عبارة if let عندما تريد ببساطة استبدال nil بقيمة default. تكون النتيجة دائمًا قيمة غير optional، لذا يمكنك استخدامها مباشرةً دون الحاجة إلى فك تغليفها مرة أخرى.
التحدي
سهلاكتب دالة getDisplayName تأخذ username اختياريًا وdefaultName، ثم تُرجع اسم العرض المناسب باستخدام عامل دمج nil.
إذا كان اسم المستخدم فارغًا (مُمثّلًا بسلسلة فارغة "")، فاعتبره nil وأرجِع الاسم الافتراضي. وإلا، فأرجِع اسم المستخدم.
المعلمات:
username(String): اسم المستخدم (تمثل السلسلة الفارغة القيمة nil)defaultName(String): الاسم الاحتياطي المراد استخدامه
القيمة المُرجعة: اسم المستخدم إذا لم يكن فارغًا، وإلا defaultName.
تلميح: داخل دالتك، خزّن اسم المستخدم في متغير من النوع String?، وإذا كان اسم المستخدم يساوي "" فعيّن nil إلى ذلك المتغير باستخدام if بسيطة. ثم استخدم ?? لتوفير القيمة الاحتياطية.
جرّب بنفسك
func getDisplayName(username: String, defaultName: String) -> String {
// اكتب الكود هنا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)تدرّب بنفسك: Playground لـ Swift