0
我需要在我的Scala應用程序中嵌入的Scala REPL功能。我怎樣才能做到這一點 ?我需要調用哪個Scala方法/類?如何從scala程序調用scala REPL控制檯?
我看看scala.tools.nsc.interpreter包,但我不知道該怎麼做。
我需要在我的Scala應用程序中嵌入的Scala REPL功能。我怎樣才能做到這一點 ?我需要調用哪個Scala方法/類?如何從scala程序調用scala REPL控制檯?
我看看scala.tools.nsc.interpreter包,但我不知道該怎麼做。
@ SOM-snytt給了我一個尖,我得到了解決。
import scala.tools.nsc.interpreter._
val lines: List[String] = List("println(\"Hello\")", "println(\"Word\")")
val ret: String = ILoop.run(lines)
// Verify if all runs OK
// Read stdin
val condition = ...
while (condition) {
// convert to List[String]
val ret: String = ILoop.run(lines)
// format and print the output
println(ret)
// Read stdin again
}
ILoop是REPL,'process(settings)'是入口點。 IMain是解釋者本身,「解釋(行)」是入口點。在2.12中還有單獨的'javax.script'用法,'Scripted'。亞捫人REPL可以提供更好的嵌入體驗。 –