現在の動作:
- 行にブレークポイントを置きます
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
OS:Windows7(64ビット)