Kotlin по умолчанию и именованные аргументы (с примерами)

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

Аргумент Котлина по умолчанию

В Kotlin вы можете указать значения по умолчанию для параметров в определении функции.

Если функция вызывается с переданными аргументами, эти аргументы используются как параметры. Однако, если функция вызывается без передачи аргумента (ов), используется аргумент по умолчанию.

Как работают аргументы по умолчанию?

Случай I. Все аргументы переданы

Функция foo()принимает два аргумента. Аргументы имеют значения по умолчанию. Однако foo()вызывается передачей обоих аргументов в вышеуказанной программе. Следовательно, аргументы по умолчанию не используются.

Значение буквы и числа будет 'x'и 2 соответственно внутри foo()функции.

Случай II: все аргументы не переданы

Здесь foo()функции передается только один (первый) аргумент . Следовательно, первый аргумент использует значение, переданное функции. Однако номер второго аргумента примет значение по умолчанию, поскольку второй аргумент не передается во время вызова функции.

Значение буквы и числа будет 'y'и 15 соответственно внутри foo()функции.

Случай III: аргумент не передан

Здесь foo()функция вызывается без передачи аргументов. Следовательно, оба аргумента используют значения по умолчанию.

Значение буквы и числа будет 'a'и 15 соответственно внутри foo()функции.

Пример: аргумент Kotlin по умолчанию

 fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( println("Output when no argument is passed:") displayBorder() println("'*' is used as a first argument.") println("Output when first argument is passed:") displayBorder('*') println("'*' is used as a first argument.") println("5 is used as a second argument.") println("Output when both arguments are passed:") displayBorder('*', 5) )

Когда вы запустите программу, вывод будет:

Вывод, если аргумент не передан: =============== '*' используется в качестве первого аргумента. Вывод, когда передан первый аргумент: *************** '*' используется в качестве первого аргумента. 5 используется как второй аргумент. Вывод, когда переданы оба аргумента: *****

Котлин названный аргумент

Прежде чем говорить об именованном аргументе, давайте рассмотрим небольшую модификацию приведенного выше кода:

 fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(5) )

Здесь мы пытаемся передать второй аргумент displayBorder()функции и использовать аргумент по умолчанию для первого аргумента. Однако этот код выдаст ошибку. Это потому, что компилятор думает, что мы пытаемся предоставить 5 ( Intзначение) символу ( Charтипу).

Чтобы решить эту ситуацию, можно использовать именованные аргументы. Вот как:

Пример: именованный аргумент Котлина

 fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(length = 5) ) 

Когда вы запустите программу, вывод будет:

 =====

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

Первый символ аргумента использует значение по умолчанию '='в программе.

Интересные статьи...