ZoS*_*Sal 5 dsl lambda receiver kotlin
我正在看这个Kotlin对象声明:
object A : B({
variableName1 = "text1"
variableName2 = "text2"
params {
param("Foo", "Bar")
}
})
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚B类构造函数的参数是什么.
我有目的地在这个例子中抽象出信息,但实际上是B类
jetbrains.buildServer.configs.kotlin.v10.BuildType
Run Code Online (Sandbox Code Playgroud)
我找不到该类型的文档.我发现了一些接近的东西,但它是一个接口的定义,因此没有构造函数.
总而言之,Kotlin的以下构造是什么?
{
variableName1 = "text1"
variableName2 = "text2"
params {
param("Foo", "Bar")
}
}
Run Code Online (Sandbox Code Playgroud)
这个结构被称为"带接收器的Lambda",又名"带接收器的函数文字",你可以在Kotlin DSL实现中广泛使用它.举个例子,看看HTML builder DSL.
我在这个帖子中详细描述了整个概念.