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
