Scala:在编译时自动初始化

时间:2017-05-02 11:53:50

标签: scala

我正在尝试创建一个DSL。对于这个DSL,用户需要能够将结果存储在一些全局值池中(我试图想到别的东西,但到目前为止我还没有能够替换它)。我想将此“池”创建为包含所有已定义值的对象。我希望它们是不可变的,但值本身是秘密列表,可以跟踪所有指定的值。

但是,为了尽可能地容纳用户,我想要有如下内容:

object Values {
 val value1
 val value2
 val value3
}

这当然不会编译。但我不想每次都进行手动分配:

object Values {
 val value1 = X()
 val value2 = X()
 val value3 = X()
}

这似乎相当多余。无论如何,此对象中的所有内容都将是X类型。我想要第一个版本用于代码完成目的(否则我可以使用Dynamic),但我不确定这是否可能,如果是这样,我怎么能这样做。我看过宏观,但我还不完全确定这些是否可以帮助我。

0 个答案:

没有答案