3 ms·
> https://kotlinlang.org/docs/reference/type-safe-builders.htm.. https://kotlinlang.org/docs/reference/type-safe-builders.htm.... > > It's more designed to buil
by eeperson 8y ago
> https://kotlinlang.org/docs/reference/type-safe-builders.htm.. https://kotlinlang.org/docs/reference/type-safe-builders.htm....
>
> It's more designed to build DSLs or similar, so you'll find more documentaion/examples in that area of the docs.
Thanks for the link. However, I feel like that still doesn't give a lot of detail. Can you have multiple receivers? Can receivers be generic? Can receiver resolution be controlled by other arguments?
> It's just a closure with a compiler-added paremeter. It can be nullable if you want and exceptions work the same as any other closure. If you want async/await you'd use coroutines. I think coroutines and receivers mix just fine, you'd just make the type a suspending lambda with receiver, but I've never tried
Sorry I didn't mean to imply that Kotlin was incapable expressing all of these things together. I meant it would be desirable to express all of these things with the same tools. It seems like the you would have to express these with several different paradigms and be aware of how they interact. That also means you would need more boilerplate because you have to abstract each of these things separately.