Evet, Scala 2.8'de yapabilirsiniz. Bunun çalışması için, sınıf yolunuza scala-compiler.jar dosyasını eklemeniz gerektiğini unutmayın. Scala programınızı ile çalıştırırsanız scala
, otomatik olarak yapılacaktır (veya yaptığım testlerde öyle görünüyor).
Daha sonra bunu şu şekilde kullanabilirsiniz:
import scala.tools.nsc.Interpreter._
object TestDebugger {
def main(args: Array[String]) {
0 to 10 foreach { i =>
breakIf(i == 5, DebugParam("i", i))
println(i)
}
}
}
Birden fazla DebugParam
argüman iletebilirsiniz . REPL ortaya çıktığında, sağdaki değer, adını solda verdiğiniz değere bağlı olacaktır. Örneğin, şu satırı şu şekilde değiştirirsem:
breakIf(i == 5, DebugParam("j", i))
Daha sonra infaz şu şekilde gerçekleşecek:
C:\Users\Daniel\Documents\Scala\Programas>scala TestDebugger
0
1
2
3
4
j: Int
scala> j
res0: Int = 5
Yazarak yürütmeye devam edersiniz :quit
.
Ayrıca koşulsuz çağırarak Repl içine düşebilir break
bir aldığında, List
içinde DebugParam
yerine vararg ait. İşte tam bir örnek, kod ve yürütme:
import scala.tools.nsc.Interpreter._
object TestDebugger {
def main(args: Array[String]) {
0 to 10 foreach { i =>
breakIf(i == 5, DebugParam("j", i))
println(i)
if (i == 7) break(Nil)
}
}
}
Ve sonra:
C:\Users\Daniel\Documents\Scala\Programas>scalac TestDebugger.scala
C:\Users\Daniel\Documents\Scala\Programas>scala TestDebugger
0
1
2
3
4
j: Int
scala> j
res0: Int = 5
scala> :quit
5
6
7
scala> j
<console>:5: error: not found: value j
j
^
scala> :quit
8
9
10
C:\Users\Daniel\Documents\Scala\Programas>