Дана функция, которая создает лямбды. Можно ли делегировать реализацию объявленной функции возвращаемой лямбде (аналог by
-отделенных свойств). Если бы by
существовало для функций, оно могло бы выглядеть так:
fun printFunCreator(message: String): () -> Unit = { println(message) }
fun printHelloWorld() by printFunCreator("Hello world")
Что я не ищу:
Я делаю не хочу создать дополнительный свойство лямбды для делегирования вызова следующим образом:
fun printFunCreator(message: String): () -> Unit = { println(message) }
val printFun = printFunCreator("Hello world")
fun printHelloWorld() = printFun.invoke()
И я не хочу создать новый экземпляр лямбды для каждого выполнения следующим образом:
fun printFunCreator(message: String): () -> Unit = { println(message) }
fun printHelloWorld() = printFunCreator("Hello world").invoke()