Scalacコマンドライン引数-Ywarn-value-discard
をビルドに追加しました。これは、コードで見つけた微妙なバグをキャッチするためです。ただし、「破棄された非ユニット値」に対して、バグではなく意図的な破棄に関する警告が表示されるようになりました。これらの警告を抑制するにはどうすればよいですか?
ユニットを明示的に返すことにより、これらの警告を抑制します(つまり、()
)。例としてこれを回します:
def method1() = {
println("Hello")
"Bye"
}
def method2() {
method1() // Returns "Bye", which is implicitly discarded
}
に:
def method1() = {
println("Hello")
"Bye"
}
def method2() {
method1()
() // Explicitly return unit
}
この答え によれば、val _
という構文を使用することもできます。
def method2(): Unit = {
val _ = method1()
}
しかし、これと@Régisによる回答のどちらが望ましいスタイルであるかについては、いくつかの論争があります。
Scala 2.1 のUnit
への型のサブスクリプションを介して、値破棄の警告を抑制できるようになりました。
これは例です:
def suppressValueDiscard(): Unit =
"": Unit