Отладка отдельных строк в Scala

Один код может многого добиться в Scala.

def -(that: Nat) = if (that.isZero) this else throw new Error("negative number")

Однако его трудно отлаживать. Какие-нибудь советы?


person More Than Five    schedule 18.04.2013    source источник


Ответы (2)


Используйте рабочий лист Scala. Вот и все: вы получаете многострочный REPL с вашей средой, в которой вы можете играть со своим кодом.

введите здесь описание изображенияВ качестве альтернативы просто используйте REPL в комплекте с sbt (sbt console) с правильным импортом

person om-nom-nom    schedule 18.04.2013
comment
Спасибо, но как насчет тонны существующего кода, который находится в объектах/классах scala? - person More Than Five; 19.04.2013
comment
@MoreThanFive ничего особенного: используйте вывод отладчика и ведения журнала, как обычно. - person om-nom-nom; 19.04.2013

вы можете увидеть вывод фаз компиляции, то есть AST после дешугаринга с помощью

scalac -Xprint:типер

scalac -Xprint-types (обратите внимание на дефис, а не на двоеточие)

Страница руководства немного сбивает с толку, в ней нет фазы ввода, но она работает:

http://www.scala-lang.org/docu/files/tools/scalac.html

Трассировка типа времени компиляции

person Gene T    schedule 19.04.2013