Чистое решение для сброса в консоль REPL в середине выполнения программы
Есть ли какое-нибудь рабочее решение для добавления в консоль REPL с Scala 2.10?
Это главным образом для целей отладки - я хочу сделать паузу в середине выполнения и иметь консоль REPL, где я могу проверять значения и проверять логику программы, используя сложные выражения в моей программе в текущем состоянии выполнения. Те, кто программировал на Ruby, могут знать похожую функцию:binding.pry
.
AFAIK, Scala 2.9 и младше, чтобы иметьbreakIf
но он был удален из более поздних версий. С помощьюILoop
кажется, новый путь, но возникли проблемы из-заsbt
не добавлять scala-библиотеку в путь к классам.
Несколько решений, таких какэтот а такжеэтот похоже, предлагает хороший обходной путь, но моя точка зрения заключается в том, что должно быть решение, при котором мне не нужно тратить часы или даже дни, чтобы заставить REPL работать.
Короче говоря, здесь задействовано намного больше стандартных шагов - это в отличие отbinding.pry
это просто строка кода без дополнительного шаблона.
Я не знаю, возникла ли проблема при выполнении программы как задачи sbt, а не при непосредственном запуске исполняемого файла программы, но в целях разработки я в данный момент запускаю и тестирую свою программу с помощью задачи sbt.