“带接收器的Lambda”:这个Kotlin结构是什么?
问题描述:
我期待在此科特林对象声明:“带接收器的Lambda”:这个Kotlin结构是什么?
object A : B({
variableName1 = "text1"
variableName2 = "text2"
params {
param("Foo", "Bar")
}
})
而且我想不通的参数B类的构造函数是什么。
我有意地抽象化了的信息在这个例子中,但B类实际上是
jetbrains.buildServer.configs.kotlin.v10.BuildType
我无法找到该类型的文档。 I have found something that was close但它是一个接口的定义,因此没有构造函数。
总而言之,Kotlin的以下结构是什么?
{
variableName1 = "text1"
variableName2 = "text2"
params {
param("Foo", "Bar")
}
}
答
这种结构被称为"Lambda with Receiver",又名“函数文本与接收器”,您将在科特林DSL实现广泛使用找到。例如,看看HTML builder DSL。
我在this线程中详细描述了整个概念。
https://confluence.jetbrains.com/display/TCD10/Kotlin+DSL –
@YoavSternberg这是我正在看,并感到困惑。我可能刚刚错过了这样一句话,即说这个参数是一个与接收器相关的函数。 – ZoSal