“与接收者的Lambda”:这个Kotlin结构是什么?

我正在看这个Kotlin对象声明:

object A : B({ variableName1 = "text1" variableName2 = "text2" params { param("Foo", "Bar") } }) 

而我无法弄清楚B类构造函数的参数是什么。

我在这个例子中有目的地提取了信息,但是B类实际上是

 jetbrains.buildServer.configs.kotlin.v10.BuildType 

而我无法find该types的文档。 我发现了一些接近的东西,但它是一个接口的定义,因此没有构造函数。

总而言之,Kotlin的这个构造是什么?

 { variableName1 = "text1" variableName2 = "text2" params { param("Foo", "Bar") } } 

这个结构被称为“Lambda with Receiver” ,又名“Function Literal with Receiver”,您可以在DSL结构中find广泛的应用。 例如,查看HTML生成器DSL 。

我在这个主题中详细描述了整个概念。