معامل دمج Nil
جزء من قسم الأساسيات في رحلة Swift على Coddy. الدرس 14 من 86.
أحيانًا تريد فقط توفير قيمة افتراضية عندما تكون القيمة الاختيارية nil، دون كتابة عدة أسطر من التعليمات البرمجية. يُنجز عامل الدمج عند nil في Swift (??) ذلك تمامًا. فهو يفك تغليف القيمة الاختيارية إذا كانت تحتوي على قيمة، أو يعيد قيمة افتراضية إذا كانت 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 بقيمة افتراضية. عندما لا تكون القيمة الافتراضية اختيارية، لا تكون النتيجة اختيارية أيضًا، لذا يمكنك استخدامها مباشرةً دون الحاجة إلى فك التغليف مرة أخرى.
التحدي
سهلاكتب دالة 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