SORU
29 Ocak 2010, Cuma


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
29 Ocak 2010, Cuma


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>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007
  • TastyTuts | Creative video tutorials by Gareth David

    TastyTuts |

    6 Temmuz 2011