2017-03-02 84 views
0

我需要在我的Scala應用程序中嵌入的Scala REPL功能。我怎樣才能做到這一點 ?我需要調用哪個Scala方法/類?如何從scala程序調用scala REPL控制檯?

我看看scala.tools.nsc.interpreter包,但我不知道該怎麼做。

+1

ILoop是REPL,'process(settings)'是入口點。 IMain是解釋者本身,「解釋(行)」是入口點。在2.12中還有單獨的'javax.script'用法,'Scripted'。亞捫人REPL可以提供更好的嵌入體驗。 –

回答

0

@ 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 
}