Случай по умолчанию в конфликте между линтером и покрытием кода в 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 решит проблему. Я не знаю ваших реальных дел, но, может быть, если-иные применимы

В некоторых других случаях, вероятно, это всего лишь линтер, который не достаточно мощный, чтобы понять, что случай по умолчанию не нужен. (кстати, какой вы используете?)

Другие вопросы по тегам