Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

القيم الافتراضية

جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 59 من 93.

أحيانًا تريد أن تكون لمعامل الدالة قيمة بديلة عندما لا يوفّر المستدعي قيمةً لها. تتيح لك Kotlin تعيين قيم افتراضية مباشرةً في تعريف المعامل.

fun greet(name: String = "Guest") {
    println("Hello, $name!")
}

fun main() {
    greet("Alice")
    greet()
}
// المخرجات:
// مرحباً، Alice!
// مرحباً، Guest!

عند استدعاء greet() دون وسيطة، تستخدم Kotlin القيمة الافتراضية "Guest". وهذا يجعل الدوال أكثر مرونة؛ إذ يمكن للمتصلين تخصيص السلوك عند الحاجة أو الاعتماد على قيم افتراضية معقولة.

يمكنك مزج المعاملات التي لها قيم افتراضية والتي ليس لها قيم افتراضية. عادةً ما تأتي المعاملات ذات القيم الافتراضية في النهاية:

fun createUser(name: String, role: String = "member"): String {
    return "$name ($role)"
}

fun main() {
    println(createUser("Alice", "admin"))
    println(createUser("Bob"))
}
// المخرجات:
// Alice (admin)
// Bob (member)

تصبح الوسائط المُسمّاة مفيدةً بشكل خاص مع القيم الافتراضية. فهي تتيح لك تخطي بعض المعاملات مع توفير معاملات أخرى:

fun format(text: String, uppercase: Boolean = false, prefix: String = "") {
    val result = if (uppercase) text.uppercase() else text
    println("$prefix$result")
}

fun main() {
    format("hello", prefix = "-> ")
}
// المخرجات: -> hello
challenge icon

التحدي

متوسط

نفّذ buildGreeting(name: String, greeting: String = "Hello"): String. أعد تحية بالصيغة greeting, name!. يستدعي مشغّل الاختبار المتوفر دالتك مرتين: مرةً باستخدام الاسم فقط، ومرةً باستخدام اسم وتحية صريحة. لا تكتب main ولا تطبع داخل الدالة. يجب أن تستخدم التحية المفقودة القيمة الافتراضية "Hello".

جرّب بنفسك

fun buildGreeting(name: String, greeting: String): String {
    // أضف القيمة الافتراضية إلى المعامل وأرجع التحية.
    TODO("Build the greeting")
}
quiz iconاختبر نفسك

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

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

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