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

问题描述 投票:0回答:1

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

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

https:/github.comkizitonwoseCalendarViewblob6be23be1f721fe2e08e5f2e2e7f29ad0b519c327samplesrcmainjavacomkizitonwosecalendarviewsampleHomeActivity.kt#L15。

我只是觉得匿名函数或Lambdas...

kotlin lambda anonymous-function
1个回答
2
投票

如果你检查 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()
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.