Подавить предупреждение "выброшено не по значению единицы"
Я добавил аргумент командной строки scalac -Ywarn-value-discard
в мою сборку, потому что это поймало бы небольшую ошибку, которую я только что нашел в своем коде. Тем не менее, теперь я получаю несколько предупреждений о "отброшенном значении, не являющемся единицей", о намеренных сбросах, а не об ошибках. Как мне подавить эти предупреждения?
2 ответа
Решение
Вы подавляете эти предупреждения явно возвращая единицу (то есть ()
). К примеру, включите это:
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
}
Согласно этому ответу, вы также можете использовать синтаксис val _
т.е.
def method2(): Unit = {
val _ = method1()
}
Но есть некоторый спор о том, является ли этот или ответ @Régis предпочтительным стилем.
Теперь вы можете подавить предупреждение об отказе от значения, присвоив типу Unit
в Scala 2.13.
Это пример:
def suppressValueDiscard(): Unit =
"": Unit