我不知道如何編寫代碼,將允許放入解釋器到斯卡拉2.9代碼。這個問題是一個後續this one,該問什麼斯卡拉當量,如何寫斯卡拉2.9代碼,將允許放入解釋器
import pdb
pdb.set_trace()
是用Python。這裏給出的建議主要是針對Scala 2.8,並且相關的軟件包不再以先前的形式存在。也就是說,
scala.nsc.tools.nsc.Interpreter.{break, breakIf}
已經被轉移到scala.nsc.tools.nsc.interpreter.ILoop.{break, breakIf}
DebugParam
現在NamedParam
在scala.tools.nsc.interpreter
正如原文章中指出,父進程的類路徑沒有自動傳遞給新的解釋器,因此提供了一種解決方法here。不幸的是,這裏調用的許多類/方法現在已經發生了變化,我不太確定如何修改代碼的行爲與「預期」相同。
謝謝!
編輯:這裏是我的測試代碼,這在目前的編譯和運行,但試圖在應用程序凍結,如果編譯通過scalac
和執行的調試結果通過scala
import scala.tools.nsc.interpreter.ILoop._
object Main extends App {
case class C(a: Int, b: Double, c: String) {
def throwAFit(): Unit = {
println("But I don't wanna!!!")
}
}
// main
override def main(args: Array[String]): Unit = {
val c = C(1, 2.0, "davis")
0.until(10).foreach {
i =>
println("i = " + i)
breakIf(i == 5)
}
}
}
EDIT2執行什麼:作爲我目前的設置正在運行,我發現這個主題已被涵蓋in the FAQ(頁面底部)。但是,我不明白給出的解釋,任何有關MyType
的澄清將是無價的。
EDIT3:http://permalink.gmane.org/gmane.comp.lang.scala.simple-build-tool/1622
我碰到這個問題,以及今晚。 Even:對象Main extends App {scala.tools.nsc.interpreter.ILoop.breakIf(true)}將掛起。 – arya