Это не "конструктор функции", это просто передача лямбды как аргумента в метод.
На kotlin .setOnClickListener{}
- это то же самое что .setOnClickListener() {}
и то же самое что .setOnClickListener({})
. Лямбда (то что в фигурных скобках) просто передается в метод как аргумент. Если она последний аргумент - она может выноситься из круглых скобок, если единственный аргумент - круглые скобки можно опустить (см. Passing trailing lambdas)
Пример, то что передано в doSomething
будет вызвано внутри этого метода:
class Test {
fun doSomething(handler: () -> Unit) {
handler.invoke()
}
}
fun main() {
val test = Test()
test.doSomething({
println("Hello 1")
})
test.doSomething() {
println("Hello 2")
}
test.doSomething {
println("Hello 3")
}
}