首页 > 解决方案 > 如何使用 kotlin 编写没有导入或 val 的 DSL

问题描述

我正在尝试按照此处的示例创建一个 kotlin DSl https://github.com/zsmb13/VillageDSL

他们写 :

val v = village {
    house {
        person {
            name = "Emily"
            age = 31
        }
        person(name = "Hannah") {
            age = 27
        }
        person("Alex", 21)
        person(age = 17, name = "Daniel")
    }
}

我想知道是否有办法像使用 gradle 一样编写它,如下所示:

village {
    house {
        person {
            name = "Emily"
            age = 31
        }
        person(name = "Hannah") {
            age = 27
        }
        person("Alex", 21)
        person(age = 17, name = "Daniel")
    }
}

并自动生成导入(如在 gradle 中)。

我想用通配符导入以编程方式包装文件,然后是val result =,但它可能会泄漏和错误,有没有更好的方法?

标签: kotlindsl

解决方案



推荐阅读