|
|
|
|
|
by burntcookie90
3845 days ago
|
|
look at the signature for `with` inline fun <T, R> with(receiver: T, f: T.() -> R): R
it takes a lambda that is scoped to the receiver type `T`. This means the lambda runs in the scope of whatever is passed in as a receiver. with(list) {
add(item)
add(item)
}
This essentially lets you create DSLs for whatever.Another thing that's bit me in butt recently is that `Protocol`s aren't concrete types, unlike an `interface` in Java/Kotlin. |
|