Ответ
Да, сталкивался. В Kotlin это называется лямбда-выражениями или higher-order functions. Они позволяют передавать блок кода как аргумент. Например:
fun doSomething(block: () -> Unit) {
println("Before")
block() // вызов переданного блока
println("After")
}
// Использование:
doSomething {
println("Inside block")
}
Особенности:
- Лямбды могут принимать параметры:
(Int) -> String - Если лямбда последний параметр, её можно вынести за скобки
- Можно использовать
itдля единственного параметра - Лямбды могут возвращать значения
Пример с параметром:
listOf(1, 2, 3).forEach { item ->
println(item)
}