kotlin - 如何使用 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 =
,但它可能会泄漏和错误,有没有更好的方法?
解决方案
你可以考虑使用 Kotlin Scripting。例如https://github.com/Kotlin/KEEP/blob/master/proposals/scripting-support.md 或 https://github.com/holgerbrandl/kscript
推荐阅读
- polymer - 如何在 Polymer 2.0 中将更改的数组数据从 Target 传递到 Host 元素?
- java - 为什么要创建一个新变量并在可以使用旧变量时使用它?
- python - 从多列中查找最接近的值并添加到 Python 中的新列
- angular - NGRX Effect "rxjs reducer operator" 停止可观察链
- python - 我的问题是编写一个 python 程序从文件中读取 2 个数字,并将这 2 个数字的 gcd 和 lcm 写入第二个文件。这是我的代码
- python - 如何格式化从 mongodb 导出的数据
- asp.net-core - AspNet 核心 2.1 SignalR Angular 7
- razor - 如何在剃须刀页面外调用 Html.Raw 和 Html.Partial?
- assembly - 8086 装配中的星号金字塔
- primefaces - 图表标签在primefaces中重叠