English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本文中,您将在示例的帬加下了解�u9ED8认参数和名称参数。
في Kotlin، يمكنك تقديم قيم افتراضية للمعلمات في تعريف الدالة.
إذا تم استدعاء الدالة من خلال تقديم المعلمات، فإن هذه المعلمات تستخدم كمعلمات. ولكن، إذا تم استدعاء الدالة دون تقديم أي معلمات، فإن المعلمات الافتراضية يتم استخدامها.
دالة foo() تحتوي على معلمتين. المعلمتان تحتوي على قيم افتراضية. ولكن، يتم استدعاء foo() في البرنامج أعلاه بتقديم معلمتين. لذلك، لا يتم استخدام المعلمات الافتراضية.
في دالة foo()، قيم letter و number هي 'x' و 2 على التوالي.
ثانياً: عدم تقديم جميع المعلمات، فقط تقديم معلمة واحدة
في هذا السياق، يتم تقديم فقط المعلمة الأولى (الاولى) إلى دالة foo(). لذلك، يتم استخدام القيمة المقدمة للمعلمة الأولى. ولكن، سيتم استخدام المعلمة الثانية number كقيمة افتراضية، لأن المعلمة الثانية لم يتم تقديمها عند استدعاء الدالة.
في دالة foo()، قيم letter و number هي 'y' و 15 على التوالي.
في هذا السياق، ندعو دالة foo() دون تقديم أي معلمات. لذلك، يستخدم هذان المعلمتان قيمتهما الافتراضية.
في دالة foo()، قيم letter و number هي 'a' و 15 على التوالي.
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 كمعلمة الثانية. الإخراج عند تقديم اثنين من المعلمات في نفس الوقت: *****
قبل مناقشة اسم الم 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).
لحل هذه المشكلة، يمكنك استخدام اسم الم 参数. الطريقة هي:
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 يجب أن يتم استخدام هذه القيمة (غير مرتبط بموقع المبرمج).
استخدام الحرف الأول للمعلمة كقيمة افتراضية في البرنامج '='.