kotlin语法问题


#1

在kotlin的ContractBuilder中有这样一个函数, public inline fun contract(builder: ContractBuilder.() -> Unit) { }
ContractBuilder.()这种用法以前没见过,一个类后边点括号,麻烦大佬们解答下


#2

相当于这个Lambda的接受者是ContractBuilder

类似扩展函数,Lambda中的this为ContractBuilder,
可以在Lambda内直接调用ContractBuilder的方法而不需要显式指定变量名


#3

这个特性应该还没有正式,别太计较了,主要是为了给编译器提供类型和执行信息用的。


京ICP备16022265号-2 Kotlin China 2017 - 2018