Scala调试这个递归示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala调试这个递归示例相关的知识,希望对你有一定的参考价值。

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)不起作用?

答案

你错过了一对大括号:

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

以上是关于Scala调试这个递归示例的主要内容,如果未能解决你的问题,请参考以下文章

用 vscode 调试 scala

用 vscode 调试 scala

用 vscode 调试 scala

用 vscode 调试 scala

递归在scala中创建字符串的所有旋转

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?