Kotlin中的“。()”是什么意思?

我见过一个函数有一个由ClassName给出的参数的例子。()这似乎不是一个扩展函数,它是ClassName.Function()

Kotterknife就是一个例子:

private val View.viewFinder: View.(Int) -> View? get() = { findViewById(it) } 

我不太了解这个功能,

和MaterialDrawerKt

 fun Activity.drawer(setup: DrawerBuilderKt.() -> Unit = {}): Drawer { val builder = DrawerBuilderKt(this) builder.setup() return builder.build() } 

代码允许你直接调用的地方

 drawer { ... } 

而不是把它括在括号内的论点。

这个地方有任何文件吗?

一个函数在Kotlin中什么都不带,并且什么都不返回,看起来像:

 var function : () -> Unit 

不同之处在于代码中的函数不会返回任何内容,只能在对象上调用。

例如,

 class Builder (val multiplier: Int) { fun invokeStuff(action: (Builder.() -> Unit)) { this.action() } fun multiply(value: Int) : Int { return value * multiplier } } 

这里重要的一点是我们已经宣布了“行动”

 action: (Builder.() -> Unit) 

这是一个不返回任何内容的函数,只需要在“Builder”类型的对象上调用。

请参阅更多