2

当我在 Scala 的模式匹配中没有默认情况时,我的 linter 总是抱怨。然而,默认情况通常是人为的,我的程序永远无法真正达到这种情况。

例如,考虑以下程序:

scala> val x = 1
x: Int = 1

scala> x match {
     | case 1 => println("yay")
     | case _ => println("nay")
     | }
yay

很明显,底部的情况实际上是死代码,但是,我的 linter 仍然会抱怨它。另一方面,我非常理解在整数上匹配而不覆盖所有情况的直觉感觉很危险,但在这种情况下,这显然是不合理的。

我是否应该简单地删除此处的默认情况并抑制 linter 警告以让您安心?

编辑: 请参阅https://www.codacy.com/app/hejfelix/Frase/issues?bid=2858415&filters=W3siaWQiOiJDYXRlZ29yeSIsInZhbHVlcyI6WyJFcnJvciBQcm9uZSJdfV0=以更详细地了解 Codacy 要求提供默认案例的案例数量。

4

1 回答 1

0

在示例中,if-else 可以解决问题。我不知道你的真实案例,但也许 if-else 也适用

在其他一些情况下,可能只是它的功能不够强大,不需要理解默认情况。(顺便说一句,你用的是哪一个?)

于 2016-04-23T12:07:04.420 回答