Статус | Ожидание | Реальность |
---|---|---|
✅ | Функция, вернувшая лямбду, работает без крашей; лямбду можно вызвать | Реальность совпадает с ожиданием |
Опишем функцию, возвращающую какую-нибудь лямбду, на Kotlin-е:
// Functions.kt
fun returnLambda(): () -> Unit {
println("Function that returns lambda")
return {
println("Lambda inside return")
}
}
fun returnParametrizedLambda(): (String) -> Unit {
println("Function that returns parametrized lambda")
return {
println("returnParametrizedLambda | it: $it")
}
}
private fun example() {
FunctionsKt.returnLambda().invoke()
FunctionsKt.returnParametrizedLambda().invoke("123")
}
На стороне Swift-а использование тоже выглядит удобным:
functionsExample.returnLambda()()
let _ = functionsExample.returnParametrizedLambda()("123")