1
私は、WebインタプリタのためのScalaコードを評価するためにScalaツールボックスを使用しています。それがうまく機能している、コードは次のようになります。Scala Toolbox evalを使用すると、後でエバールで使用できるI値をどのように定義できますか?
import scala.reflect.runtime.universe._
import scala.tools.reflect.ToolBox
object Eval {
val toolbox = runtimeMirror(getClass.getClassLoader).mkToolBox()
def eval[T](code: String): T = {
toolbox.eval(toolbox.parse(code)).asInstanceOf[T]
}
}
私はのような何かを行うことができます。
Eval.eval[Long]("1 + 1")
をして2
を取り戻します。
Eval.eval[Unit]("val yellow = 5")
Eval.eval[Long]("yellow")
私はnot found: value yellow
エラーを取得する:私は何かを定義したいとき質問がアップします。 Scala Toolboxで後の評価で使用できる値を定義するにはどうすればよいですか?
ありがとうございます!
これは素晴らしいです!ここで唯一の問題は、スクリプトにエラーがあった場合に、エンジン内で発生した例外をどのように取得するのかです。実際の原因が端末に出力されても、 '.getMessage()'は 'javax.script.ScriptException:compile-time error'を返します。 – prismofeverything