Scala调试这个递归示例

时间:2018-05-07 21:23:28

标签: scala debugging

def append[T](xs: List[T], ys: List[T]): List[T] =
    println(xs)
    xs match {
        case List() => ys
        case x :: xs1 => x :: append(xs1, ys)
    }

append(List(1,2), List(3,4));

所以println(xs)代码不会运行。我基本上想看看当xs1只是单个元素数组时会发生什么。但是我怎么能这样做呢?我基本上想看看是否将单个元素列表解构为单个元素,xs1在下一个传递中就像null[]

Scala有哪些调试器?我该如何使用它们?为什么println(xs)无效?

1 个答案:

答案 0 :(得分:0)

你缺少一对牙箍:

def append[T](xs: List[T], ys: List[T]): List[T] = {
    println(xs)
    xs match {
        case List() => ys
        case x :: xs1 => x :: append(xs1, ys)
    }
}

scastie是试用小代码段的好方法。

如果您使用的是IntelliJ,那么如何设置调试有一个很棒的answer