当前行为:
- 在行上放一个断点
case Twice(n) ...
。 - 在“步入”时,控制进入
x match {
线 - 在“步入”时,控制进入
def TwiceTest = {
线 - 在进一步“步入”时,控制进入
if (z % 2 == 0)...
线路。
预期行为:
- 在行上放一个断点
case Twice(n) ...
。 - 在“步入”时,控制进入
if (z % 2 == 0)...
线路。
代码片段
object testobj extends App {
def TwiceTest = {
val x = Twice(21)
x match {
case Twice(n) => Console.println(n)
} // prints 21
}
TwiceTest
}
object Twice {
def apply(x: Int): Int = x * 2
def unapply(z: Int): Option[Int] = {
if (z % 2 == 0) Some(z / 2) else None
}
}
在调试具有大量嵌套提取器的 scala 程序时,当前的行为令人恼火。我用新的 Scala 调试器和 Java 调试器尝试了这个,但结果相同。
Step Filtering
在这种情况下也无济于事。
作为一种解决方法,我在unapply
方法中放置一个断点并resume
从第一个断点运行。有人可以建议我一个更清洁的方法。
编辑 1 我正在使用 Scala-IDE(最新的夜间版本。2.1.0.nightly-2_09-201208250315-529cd70)
Eclipse 版本:Indigo Service Release 2 构建 ID:20120216-1857
操作系统:Windows 7(64 位)