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

时间:2020-06-08 15:11:45

标签: kotlin lambda anonymous-function

在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 ...

1 个答案:

答案 0 :(得分:3)

我检查了在构造函数中看到的HomeOptionsAdapter

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

因此它需要一个onClick侦听器,该函数将一个ExampleItem作为输入并返回Unit。这是Kotlin语言的功能,如果它是最后一个参数,则可以在()外部放置一个lambda。这些是等效的:

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

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