re: Send me all the Kotlin questions you were too afraid to ask VIEW POST

re: Thank you for your response. This makes sense. Three weeks ago I started a side project in Kotlin that could potentially replace a legacy Java co...

Hey, builder pattern is interesting....

I'm trying to understand this expression:

fun dialog(init: DialogBuilder.() -> Unit): Dialog =

The part that is kind of weird to me is: DialogBuilder.()

Is that related to the extension functions?

So actually the builder pattern is integrated in Kotlin itself.

Given data class User(val id: Int = 1, val name: String = "")
Then this do the same as the builder pattern would do in Java
val user = User(name = "Alejandro", id =42)

The dialog function is a building block for building a DSL.
It takes as parameter a function init that you could define as having a parameter DialogBuilder and returning Unit. But instead you define the parameter as an extension function of DialogBuilder.


code of conduct - report abuse