"val XXX = Class { ... " 在 Kotlin 中是什么意思?

What does "val XXX = Class { ... " mean in Kotlin?

在 Kotlin 中,这个语法是什么意思?

class HomeActivity : AppCompatActivity() {
    val examplesAdapter =  HomeOptionsAdapter {
        val fragment = it.createView()
        ...
    }

https://github.com/kizitonwose/CalendarView/blob/6be23be1f721fe2e08e5f2e2e7f29ad0b519c327/sample/src/main/java/com/kizitonwose/calendarviewsample/HomeActivity.kt#L15

我只是想到匿名函数或 Lambdas ...

我检查一下 HomeOptionsAdapter 你会在构造函数中看到这个

class HomeOptionsAdapter(val onClick: (ExampleItem) -> Unit) 

所以它需要一个 onClick 侦听器,一个以 ExampleItem 作为输入和 returns Unit 的函数。这是 Kotlin 语言的一项功能,如果它是最后一个参数,您可以将 lambda 放在 () 之外。这些是等价的:

val examplesAdapter =  HomeOptionsAdapter({
    val fragment = it.createView()
    ...
})

val examplesAdapter =  HomeOptionsAdapter {
    val fragment = it.createView()
    ...
}