Подтвердить что ты не робот

Подавить "отброшенное не-значение единицы"

Я добавил аргумент командной строки scalac -Ywarn-value-discard в мою сборку, потому что это поймало бы тонкую ошибку, которую я только что нашел в своем коде. Тем не менее, теперь я получаю предупреждения о "отброшенном не-Unit value", которые касаются преднамеренных сбросов, а не ошибок. Как я могу подавить эти предупреждения?

4b9b3361

Ответ 1

Вы подавляете это предупреждение, явно возвращая единицу (то есть ()). Пример:

def method1() = {
   println("Hello")
   "Bye"
}
def method2() {
  method1() // Returns "Bye", whihc is implicitly discarded
}

в

def method1() = {
   println("Hello")
   "Bye"
}
def method2() {
  method1()
  () // Explicitly return unit
}

Ответ 2

В соответствии с этим ответом вы также можете использовать синтаксис val _, i.e.

def method2(): Unit = {
  val _ = method1()
}

Но есть некоторые споры о том, является ли этот или ответ by @Régis предпочтительным стилем.