是否可以将REPL会话保存到文件中? 这是否需要Scala的最低版本? 我记得看过有人这样做,但我无法在: help或文档中找到它。
是否可以将REPL会话保存到文件中? 这是否需要Scala的最低版本? 我记得看过有人这样做,但我无法在: help或文档中找到它。
从Scala 2.11开始,这是可能的。 使用示例:
scala> 1
res0: Int = 1
scala> 2
res1: Int = 2
scala> 3
res2: Int = 3
scala> :save xxx
scala> :load xxx
Loading xxx...
res3: Int = 1
res4: Int = 2
res5: Int = 3
在 :load
前使用 :reset
可以确保结果的正确引用:
scala> 1
res0: Int = 1
scala> res0 + 1
res1: Int = 2
scala> :save xxx
那天晚些时候...
scala> 7
res0: Int = 7
scala> :reset
Resetting interpreter state.
Forgetting this session history:
7
Forgetting all expression results and named terms: $intp
scala> :load xxx
Loading xxx...
res0: Int = 1
res1: Int = 2
除了普通的保存和加载外,这些函数只是在最近的保存后丢弃所有内容,您还可以为这些函数提供名称。
这样,您就可以停止在一个分支上工作,去做其他事情一段时间,然后能够回来继续之前离开的地方:
@ val (x, y) = (1, 2)
x: Int = 1
y: Int = 2
@ sess.save("xy initialized")
@ val z = x + y
z: Int = 3
@ sess.save("first z")
@ sess.load("xy initialized")
@ val z = x - y
z: Int = -1
:help
中缺失了 :)。 - mikołak