English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kotlin基础教程

Kotlin流程控制

الوظائف في Kotlin

الصفحات في Kotlin

Kotlin面向对象(OOP)

الم 参数 الافتراضية والاسمية في Kotlin

在本文中,您将在示例的帬加下了解�u9ED8认参数和名称参数。

Kotlin最默订参

في Kotlin، يمكنك تقديم قيم افتراضية للمعلمات في تعريف الدالة.

إذا تم استدعاء الدالة من خلال تقديم المعلمات، فإن هذه المعلمات تستخدم كمعلمات. ولكن، إذا تم استدعاء الدالة دون تقديم أي معلمات، فإن المعلمات الافتراضية يتم استخدامها.

كيف تعمل المعلمات الافتراضية؟

أولاً: تقديم جميع المعلمات

دالة foo() تحتوي على معلمتين. المعلمتان تحتوي على قيم افتراضية. ولكن، يتم استدعاء foo() في البرنامج أعلاه بتقديم معلمتين. لذلك، لا يتم استخدام المعلمات الافتراضية.

في دالة foo()، قيم letter و number هي 'x' و 2 على التوالي.

ثانياً: عدم تقديم جميع المعلمات، فقط تقديم معلمة واحدة

في هذا السياق، يتم تقديم فقط المعلمة الأولى (الاولى) إلى دالة foo(). لذلك، يتم استخدام القيمة المقدمة للمعلمة الأولى. ولكن، سيتم استخدام المعلمة الثانية number كقيمة افتراضية، لأن المعلمة الثانية لم يتم تقديمها عند استدعاء الدالة.

في دالة foo()، قيم letter و number هي 'y' و 15 على التوالي.

ثالثاً: عدم تقديم أي معلمات

في هذا السياق، ندعو دالة foo() دون تقديم أي معلمات. لذلك، يستخدم هذان المعلمتان قيمتهما الافتراضية.

في دالة foo()، قيم letter و number هي 'a' و 15 على التوالي.

مثال: Kotlin المعلمات الافتراضية

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    println("الإخراج عند عدم تقديم أي معلمات:")
    displayBorder()
    println("\n\n'*' كمعلمة الأولى.")
    println("الإخراج عند تقديم المعلمة الأولى فقط:")
    displayBorder('*')
    println("\n\n'*' كمعلمة الأولى.")
    println("5 كمعلمة الثانية.")
    println("الإخراج عند تقديم اثنين من المعلمات في نفس الوقت:")
    displayBorder('*', 5)
}

عند تشغيل البرنامج، الناتج هو:

الإخراج عند عدم تقديم أي معلمات:
===============
'*' كمعلمة الأولى.
الإخراج عند تقديم المعلمة الأولى فقط:
***************
'*' كمعلمة الأولى.
5 كمعلمة الثانية.
الإخراج عند تقديم اثنين من المعلمات في نفس الوقت:
*****

مثال: Kotlin اسم الم parameter

قبل مناقشة اسم الم parameter، دعونا نفكر في بعض التعديلات على الكود أعلاه:

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    displayBorder(5)
}

في هذا السياق، نحاول نقل الثانية من بين المعلمات إلى دالة displayBorder()، ونستخدم المعلمة الأولى كمعلمة افتراضية. ولكن، هذا الكود سيقوم بإصدار خطأ في الاستخدام. هذا بسبب أن المترجم يعتقد أننا نحاول تقديم 5 (قيمة Int) لـ (نوع Char).

لحل هذه المشكلة، يمكنك استخدام اسم الم 参数. الطريقة هي:

مثال: Kotlin اسم الم 参数

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    displayBorder(length = 5)
}

عند تشغيل البرنامج، الناتج هو:

=====

في البرنامج المذكور أعلاه، نستخدم الم参数 المسمى (length = 5) لتحديد أن الم参数 في تعريف الوظيفة length يجب أن يتم استخدام هذه القيمة (غير مرتبط بموقع المبرمج).

استخدام الحرف الأول للمعلمة كقيمة افتراضية في البرنامج '='.