Как сохранить сеанс REPL?
можно ли сохранить сеанс REPL в файле? Есть ли минимальная версия Scala, требуемая для этого? Я помню, что видел, как кто-то это сделал, но я не могу это исправить :помощь или в документации.
2 ответов
это возможно с 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
вы можете :reset
до :load
чтобы получить правильные ссылки на результаты:
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
обратите внимание, что у вас есть в дополнение к родному Scala REPL проект Shell-scripting Аммонит, которая имеет сохранить / Loadd функция сеанса:
помимо простых сохранений и нагрузок, которые просто отбрасывают все после последнего сохранения, вы также можете предоставить имя этим функциям.
Это позволяет вам перестать работать над веткой, сделать что-то еще на некоторое время и вернуться позже, чтобы продолжить где вы остановились:
@ 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