Ответ
В Kotlin/Android такие вызовы встречаются при использовании higher-order functions или lambda-выражений с receiver.
Примеры:
- Lambda с receiver (DSL-стиль):
val result = StringBuilder().apply {
append("Hello")
append("World")
}.toString()
apply — функция, возвращающая this (StringBuilder), и блок кода выполняется в его контексте.
- Функции высшего порядка:
fun customRun(block: () -> Unit) = block()
customRun { println("Called!") }
Вызов customRun() принимает лямбду, которая выполняется при вызове block().
- Генераторы (например, Jetpack Compose):
@Composable
fun MyButton(onClick: () -> Unit) {
Button(onClick = onClick) { Text("Click") } // Лямбда в фигурных скобках
}
Здесь Button() принимает лямбду для контента ({}).