Лямбда параметром функции в Kotlin
Параметр функции может иметь тип лямбды. Внутри функции такой параметр вызывают как обычную функцию:
fun applyTwice(value: Int, op: (Int) -> Int): Int {
val first = op(value)
return op(first)
}
val result = applyTwice(3) { n -> n + 1 }
println(result)
Лямбда без аргументов подходит для отложенного действия. Функция может вызвать переданный блок один или несколько раз:
fun runSafe(action: () -> Unit) {
println("begin")
action()
println("end")
}
runSafe { println("work") }
Предикат - лямбда с результатом Boolean -
удобен для проверки значения:
fun checkValue(n: Int, rule: (Int) -> Boolean): Boolean {
return rule(n)
}
println(checkValue(8) { it % 2 == 0 })
Напишите функцию combine с двумя
целыми и лямбдой (Int, Int) -> Int.
Функция возвращает результат лямбды для
этих чисел. Выведите результат для
6 и 7 так, чтобы вернулось
их произведение.
Напишите функцию repeatAction:
целое times и лямбда () -> Unit.
Тело лямбды должно выполниться столько
раз, сколько задано в times.
Проверьте выводом строки "tick"
три раза.