可能重复:
如何在Scala中禁止"匹配并非详尽!"警告
object Euler extends App {
val Max = 4000000
def p2: Int = p2(0 :: 1 :: Nil).filter(_ % 2 == 0).sum
def p2(list: List[Int]): List[Int] = {
list match {
case n1 :: n2 :: tail => if (Max < n1) n2 :: tail
else p2(n1 + n2 :: list)
// case _ => 0 :: 0 :: Nil // "match is not exhaustive"
}
}
println(p2)
}
Run Code Online (Sandbox Code Playgroud)
有人可能会给我一个例子,说明如何在没有第二种情况下使我的代码片段可编辑吗?
Ale*_*nov 11
你可以使用@unchecked:
(list: @unchecked) match { ... }
Run Code Online (Sandbox Code Playgroud)
如果只需要一个案例,则查看其他案例将表示错误.我补充case _说会引发错误.例如,如果传递的列表长度小于2个元素,则会触发.
或者,您可以手动剪切列表的头部两次,但它不会简洁.
| 归档时间: |
|
| 查看次数: |
4375 次 |
| 最近记录: |