Keyfi scala kod konum sırasında tercümanlık bırak
Benim kod içinde herhangi bir noktada ekleyebilirim nerede Python bir aileden geliyorum
import pdb; pdb.set_trace()
ve zamanında bu noktada interaktif bir tercüman içine düşmüş olurum. Scala için bir eşdeğer var mı, ya da bu mümkün zamanı değil mi?
CEVAP
Evet, Scala 2.8. Bu çalışma için sınıf içinde scala-compiler.jar eklemek zorunda unutmayın. scala
ile scala programı başlatmak otomatik olarak (ya da testlerde öyle yaptım) yapılacaktır.
O zaman bu gibi 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)
}
}
}
DebugParam
birden çok bağımsız değişken geçebilirsiniz. ÇOĞALTMA geldiğinde, sağdaki değer soldaki sağladığınız olan val bağlı olacak. Eğer değiştirirsem mesela, o satırı aşağıdaki gibi:
breakIf(i == 5, DebugParam("j", i))
Sonra infaz böyle olacak:
C:\Users\Daniel\Documents\Scala\Programas>scala TestDebugger
0
1
2
3
4
j: Int
scala> j
res0: Int = 5
:quit
yazarak yürütme devam.
Ayrıca kayıtsız şartsız DebugParam
List
bir yerine bir sırasında aldığı break
, çağırarak ÇOĞALTMA içine açılır. İş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>
Fonksiyonları kullanmak için tercümanl...
Nasıl bir diff dosyası için Gıt keyfi ...
Java nasıl önlemek için.lang.OutOfMemo...
ifadeler için Scala karşı dosyalarda g...
Hata 'BAĞLANTI : önemli hata LNK1...