我发现了一个用于回答Generating a class from string and instantiating it in Scala 2.10的Scala运行时脚本的示例代码,但代码似乎已经过时了2.11-我找不到对应于build.setTypeSignature
的任何函数。即使它起作用,代码似乎也很难阅读,并且跟随我。2.11中的Scala脚本
如何在Scala 2.11中编译和执行Scala脚本?
让我们假设我想以下几点:
- 定义几个变量(名称和值)
- 编译脚本
- (可选改善)改变量值
- 执行脚本
为简单起见,请考虑以下示例:
我要定义以下变量(编程方式,从代码,而不是从脚本文本):
val a = 1
val s = "String"
我想下面的脚本进行编译和执行的String
值"a is 1, s is String"
从它返回:
s"a is $a, s is $s"
我的功能应该如何?
def setupVariables() = ???
def compile() = ???
def changeVariables() = ???
def execute() : String = ???
注意:'build.setTypeSignature'被替换为'internal.reificationSupport.setInfo'。另请参阅[Scala 2.11中的变化](http://docs.scala-lang.org/overviews/macros/changelog211.html) - 段落**如何使您的2.10.x宏在2.11.0 **中工作。 – Suma 2015-05-13 08:51:54