Scala IMain.valueOfTerm仅获取最后一个值
我希望Scala IMain.valueOfTerm仅获取最后一个值,scala,Scala,我希望println会打印5,即y的值。而是打印10,即x的值 现在我来解释一下: 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
会打印5
,即y
的值。而是打印10
,即x
的值
现在我来解释一下:
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()
它打印5
,即y
的值。因此,我假设valueOfTerm
只返回最后提到的值。它不是要返回请求的值吗?有人能复制这个吗?还是我的代码有问题
我使用Scala 2.10.3进行此设置 好的,我可以确认它在2.11上的效果与您预期的一样,但正如您在2.10上描述的那样 然而,我不能保证我可以收回改变。好吧,我看看这是不是一个快速解决办法
否则,该方法在2.10上的名称特别糟糕。询问scala用户:在2.11上有效,而不是在2.10上。如果您将其作为答案发布,我可以接受!如果您可以将其添加为quickfix,它是否可以与scala 2.10.4一起使用?那太好了!
n.interpret("""
val y = 5
val x = 10
y
""")