Menu
CoddyTech

معامل دمج 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 بقيمة افتراضية. عندما لا تكون القيمة الافتراضية اختيارية، لا تكون النتيجة اختيارية أيضًا، لذا يمكنك استخدامها مباشرةً دون الحاجة إلى فك التغليف مرة أخرى.

challenge icon

التحدي

سهل
اكتب دالة getDisplayName تأخذ username اختياريًا وdefaultName، ثم تُعيد اسم العرض المناسب باستخدام معامل الدمج مع nil.

إذا كان اسم المستخدم فارغًا (ويُمثَّل بسلسلة فارغة "")، فاعتبره nil وأعِد الاسم الافتراضي. وإلا، فأعِد اسم المستخدم.

المعاملات:

  • username (String): اسم المستخدم (السلسلة الفارغة تُمثّل nil)
  • defaultName (String): الاسم الاحتياطي الذي سيُستخدم

القيمة المُعادة: اسم المستخدم إذا لم يكن فارغًا، وإلا فالقيمة defaultName.

تلميح: داخل دالتك، خزّن اسم المستخدم في متغير من النوع String?، وإذا كان اسم المستخدم يساوي ""، فعيّن قيمة nil لهذا المتغير باستخدام عبارة if بسيطة. ثم استخدم ?? لتوفير القيمة الاحتياطية.

جرّب بنفسك

func getDisplayName(username: String, defaultName: String) -> String {
    // اكتب الكود هنا
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Swift