Delegation
package _09delegation
class MyList(val l: List) : List by l
fun main(args: Array) {
val list = MyList(listOf("a, b, c"))
list.forEach { println(it) }
}
Slide 32
Slide 32 text
Delegation
package _09delegation
class LazyString {
val value: String by Delegates.lazy {
println("heavy computation")
"the string!"
}
}
Slide 33
Slide 33 text
Builders & DSL support
package _10builders
fun data(build: Data.() -> Unit): Data {
val result = Data()
result.build()
return result
}