3

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 ではそれについて何ができますか?

4

1 に答える 1