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

Основной учебник Kotlin

Kotlin управление потоком

Функции в Kotlin

Строки в Kotlin

Kotlin面向对象(OOP)

Default и именованные параметры в Kotlin

В этой статье вы узнаете о параметрах по умолчанию и именованных параметрах с помощью примеров.

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

До обсуждения названных параметров давайте рассмотрим некоторые изменения в вышеуказанном коде:

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)
}

При выполнении программы вывод будет следующим:

=====

В aforementioned программе мы используем имена параметров (length = 5), чтобы определить, что параметр в определении функции length должен принимать это значение (независимо от位置的 аргумента).

Использование программного значения по умолчанию для первого параметра знака '='.