Случай по умолчанию в конфликте между линтером и покрытием кода в Scala
Мои линтеры всегда жалуются, когда у меня нет случая по умолчанию для сопоставления с образцом в Scala. Однако часто случай по умолчанию является искусственным, и мои программы никогда не смогут достичь этого случая.
В качестве примера рассмотрим следующую программу:
scala> val x = 1
x: Int = 1
scala> x match {
| case 1 => println("yay")
| case _ => println("nay")
| }
yay
Понятно, что нижний регистр здесь фактически мертвый код, однако мой линтер все равно будет жаловаться на это. С другой стороны, я очень хорошо понимаю интуитивное чувство, что сопоставление целых чисел и не охватывание всех случаев кажется опасным, но в этом случае это явно иррационально.
Должен ли я просто удалить регистр по умолчанию здесь и подавить предупреждение от линтера, чтобы получить некоторое спокойствие?
редактировать: см. https://www.codacy.com/app/hejfelix/Frase/issues?bid=2858415&filters=W3siaWQiOiJDYXRlZ29yeSIsInZhbHVlcyI6WyJFcnJvciBQcm9uZSJdfV0= для более подробной информации о некоторых случаях по умолчанию, для более детального просмотра, в некоторых случаях, для более детального просмотра.
1 ответ
В этом случае решение if-else решит проблему. Я не знаю ваших реальных дел, но, может быть, если-иные применимы
В некоторых других случаях, вероятно, это всего лишь линтер, который не достаточно мощный, чтобы понять, что случай по умолчанию не нужен. (кстати, какой вы используете?)