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调试这个递归示例的主要内容,如果未能解决你的问题,请参考以下文章