gpt4 book ai didi

scala - 2.10 的嵌入式 Scala REPL 解释器示例

转载 作者:行者123 更新时间:2023-12-03 13:56:21 26 4
gpt4 key购买 nike

请给出一个代码示例,说明如何以编程方式创建嵌入式 Scala REPL 解释器,该解释器适用于 Scala 2.10。 (我花了几个小时梳理各种代码碎片以获得工作解释器后添加了这个问答)

最佳答案

基于 Ben 的出色回答,下面是一个帮助类来简化解释器的启动。用法:

Repl.run(("e", "Double", 2.71828), ("pi", "Double", 3.1415))

它会自动检测您何时从 SBT 运行并适应。

Repl.scala:
import scala.tools.nsc.interpreter.ILoop
import scala.tools.nsc.Settings
import java.io.CharArrayWriter
import java.io.PrintWriter

object Repl {

def run(params: (String, String, Any)*) {

def repl = new ILoop {
override def loop(): Unit = {
params.foreach(p => intp.bind(p._1, p._2, p._3))
super.loop()
}
}

val settings = new Settings
settings.Yreplsync.value = true

// Different settings needed when running from SBT or normally
if (isRunFromSBT) {
settings.embeddedDefaults[Repl.type]
} else {
settings.usejavacp.value = true
}

repl.process(settings)
}

def isRunFromSBT = {
val c = new CharArrayWriter()
new Exception().printStackTrace(new PrintWriter(c))
c.toString().contains("at sbt.")
}

}

关于scala - 2.10 的嵌入式 Scala REPL 解释器示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18628516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com