Seri
08/14/2019, 10:13 PMCasey Brooks
08/14/2019, 10:23 PMoperator fun String.Companion.invoke(any: Int) : String {
return any.toString()
}
fun callStringFactory() {
val s: String = String(123)
}
Seri
08/14/2019, 10:25 PMCasey Brooks
08/14/2019, 10:30 PMSeri
08/14/2019, 10:31 PMsealed class Model {
class A: Model()
class B: Model()
}
class Dsl<T>()
fun <T> dsl(init: Dsl<T>.() -> Unit): Dsl<T> {
// DSL boilerplate
}
val test = dsl<Model> {
Model.A {
// Do stuff
}
Model.B {
// Do stuff
}
}
Casey Brooks
08/14/2019, 10:41 PMinterface DslCompanionInterface
sealed class Model {
class A: Model() {
companion object : DslCompanionInterface
}
class B: Model() {
companion object : DslCompanionInterface
}
}
class Dsl<T>() {
operator fun T.invoke(block: ()->Unit) {
}
}
fun <T : DslCompanionInterface> dsl(init: Dsl<T>.() -> Unit): Dsl<T> {
// DSL boilerplate
}
val test = dsl<DslCompanionInterface> {
Model.A {
// Do stuff
}
Model.B {
// Do stuff
}
}
Seri
08/14/2019, 10:43 PM