Я нашел пример кода для сценариев выполнения Scala в ответ на Generating a class from string and instantiating it in Scala 2.10, однако код, кажется, устарел для 2.11 - я не могу найти какую-либо функцию, соответствующую build.setTypeSignature
. Даже если это сработало, код, похоже, трудно читать и следить за мной.Scala script в 2.11
Как скрипты Scala могут быть скомпилированы и выполнены в Scala 2.11?
Допустим, я хочу следующее:
- определить несколько переменных (имена и значения)
- компиляции сценария
- (опция улучшения) изменить значения переменных
- выполнить скрипт
Для простоты рассмотрите следующий пример:
Я хочу определить следующие переменные (программно из кода, а не из текста сценария):
val a = 1
val s = "String"
Я хочу следующий скрипт для компиляции и выполнения значение "a is 1, s is String"
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