Сталкивался ли с функциями где в аргументы передается блок кода

«Сталкивался ли с функциями где в аргументы передается блок кода» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, сталкивался. В Kotlin это называется лямбда-выражениями или higher-order functions. Они позволяют передавать блок кода как аргумент. Например:

fun doSomething(block: () -> Unit) {
    println("Before")
    block() // вызов переданного блока
    println("After")
}

// Использование:
doSomething {
    println("Inside block")
}

Особенности:

  1. Лямбды могут принимать параметры: (Int) -> String
  2. Если лямбда последний параметр, её можно вынести за скобки
  3. Можно использовать it для единственного параметра
  4. Лямбды могут возвращать значения

Пример с параметром:

listOf(1, 2, 3).forEach { item ->
    println(item)
}