IMain.valueOfTerm只获取最后一个值

时间:2014-03-07 13:24:02

标签: scala

import scala.tools.nsc._
import scala.tools.nsc.interpreter._

val settings = new Settings
val n = new IMain(settings)

n.interpret("""
val y = 5
val x = 10
""")
println(n.valueOfTerm("y").get)

n.close()

我希望println打印5y的值。相反,它会打印10x的值。

现在,如果我解读这个:

n.interpret("""
val y = 5
val x = 10
y
""")

打印5y的值。因此,我假设valueOfTerm仅返回最后提到的值。它不打算返回请求的值吗?任何人都可以重现这个?或者我的代码有问题吗?

我使用Scala 2.10.3进行此设置。 Scala Doc IMain

1 个答案:

答案 0 :(得分:1)

好的,我可以确认它在2.11上的效果正如您所期望的那样,但正如您在2.10中描述的那样。

但是,我不能保证我可以向后移动。好吧,我会看看它是否是一个快速修复。

否则,该方法在2.10上的命名特别严重。