评估来源而不返回值

时间:2016-09-08 02:52:50

标签: scala scala-compiler

Twitter util库为如何在运行时评估Scala代码提供了一个很好的实用工具,例如:

val eval    = new com.twitter.util.Eval()
val example = eval.apply("""
    case class E() { 
        def one(): Int = 1
    }
    (new E).one()
""").asInstanceOf[Int]
// example: Int = 1

但是有可能评估不返回任何内容的代码(返回状态为true / false - 编译/失败),然后开始使用在评估部分中定义的类,例如:

val eval = new com.twitter.util.Eval()

eval.{_MAGIC_METHOD_}("""
    case class E() { 
        def one(): Int = 1
    }
""")

val one = (new E).one(); // and this one will be -> one: Int = 1

所以我对{_MAGIC_METHOD_}部分感到好奇,有可能用某个库来做这个吗? Twitter utils可以吗?其他一些util库? Scala编译器(Scala编译器 - http://mvnrepository.com/artifact/org.scala-lang/scala-compiler)?

提前感谢您的帮助和任何建议。

0 个答案:

没有答案