我想转 Typesafe 配置
root {
mainA = "test"
submodule {
paramA = "value"
paramB = "value"
}
anotherModule {
zoo = 1
sub {
z = test
}
}
}
进入某种 Scala 配置对象,例如
object config {
val cfg = ConfigFactory.load()
val root = "root"
lazy val mainA = cfg.getString("root.mainA")
object submodule {
lazy val paramA = cfg.getString("root.submodule.paramA","value")
lazy val paramB = cfg.getString("root.submodule.paramB","value")
}
object anotherModule {
lazy val zoo = cfg.getInt("root.anotherModule.zoo",1)
object sub {
lazy val z = cfg.getString("root.anotherModule.sub.z","test")
}
}
}
所以一般我会有一些“模板”配置文件,并生成具有一些默认值的“通用”配置对象。
在 Haskell 中我会使用 Template Haskell 来生成和编译代码,在 Scala 中我能做些什么呢?