可能重复:
How to suppress “match is not exhaustive!” warning in 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)
}
有人可能会向我展示一个示例,说明如何在没有第二种情况下使我的代码段可编辑吗?
答案 0 :(得分:11)
您可以使用@unchecked
:
(list: @unchecked) match { ... }
答案 1 :(得分:6)
如果只需要一个案例,那么查看其他案例就意味着错误。我会添加引发错误的case _
。例如,如果传递的列表长度小于2个元素,则会触发。
或者,您可以手动剪切列表的头部两次,但不会那么简洁。