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

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

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

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

Пример 1: передача без аргумента в вызове функции

 
fun main(args: Array) { 
    run() 
} 
fun run(num:Int= 5, latter: Char ='x'){ 
    print("parameter in function definition $num and $latter") 
} 

Выход:

parameter in function definition 5 and x 

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

Пример 2: передача некоторого аргумента в вызове функции

 
fun main(args: Array) { 
    run(3) 
} 
fun run(num:Int= 5, latter: Char ='x'){ 
    print("parameter in function definition $num and $latter") 
} 

Выход:

parameter in function definition 3 and x 

В приведенной выше программе функция run() вызывается с одним(первым) аргументом, первый параметр определения функции использует значение, переданное функции. И второй параметр используется как аргумент по умолчанию.

Пример 3: передача всех аргументов в вызове функции

 
fun main(args: Array) { 
    run(3,'a') 
} 
fun run(num:Int= 5, latter: Char ='x'){ 
    print("parameter in function definition $num and $latter") 
} 

Выход:

parameter in function definition 3 and a 

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

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

Прежде чем мы обсудим именованный параметр, давайте внесем некоторые изменения в приведенную выше программу.

Пример:

 
fun main(args: Array) { 
    run('a') 
} 
fun run(num:Int= 5, latter: Char ='x'){ 
    print("parameter in function definition $num and $latter") 
} 

Выход:

Error: Kotlin: The character literal does not conform to the expected type Int 

Здесь мы пытаемся передать параметр «a» из вызова функции в определение функции во втором аргументе. Но компилятор предполагает, что параметр ‘a’ (тип Char) передается в качестве первого аргумента (тип Int), что вызывает ошибку в программе.

Для решения вышеуказанной проблемы используется именованный аргумент.

Что такое именованный аргумент?

Именованный аргумент — это аргумент, в котором мы определяем имя аргумента при вызове функции. Имя, определенное для аргумента вызова функции, проверяет имя в определении функции и присваивает ему.

Пример именованного аргумента Kotlin:

 
fun main(args: Array) { 
    run(latter='a') 
} 
fun run(num:Int= 5, latter: Char ='x'){ 
    print("parameter in function definition $num and $latter") 
} 

Выход:

parameter in function definition 5 and a 

Оцените статью