2013-07-17 10 views
5

を警告しません:Scalaは、私はこの小さなScalaの例を持っている未使用の計算や値

object Test { 
    def add(x: Int, y: Int) = { 
    val z = x - y 
    x match { 
     case 0 => 0 - y 
     case 1 => 1 - y 
     case _ => x - y 
    } 
    x + y 
    } 

    def main(args: Array[String]) { 
    println(add(5, 6)) 
    } 
} 

私はScalaは「Z」と警告しなければならないこと「Xの試合...」未使用であることを感じます。私は、より多くの警告を発するコンパイラオプションに気付かなかった。私はscala 2.10.1を使用しています。

思考?ありがとう!

+3

これは、コンパイラが示すように完全に有効なスカラコードです。未使用の変数警告は、通常、ソースコードアナライザが見つけて警告するものです。同様のコードの場合、 'java'コンパイラは警告も表示しません。 – Brian

+0

@Brian javacがベンチマークであるかどうかはわかりません。 3人のアップウィッターは、私はどんなタイプの安全性も必要としないと言います!私はマッチでいくつかのスラックをカットスカラック、それはまだ徹底的にダウンしようとしている。 Unitの値を破棄するよう警告することができます.Unitが警告できるかどうかを警告します。 –

+0

-Ywarn-value-discard "'コンパイラオプションを追加してみてください。 –

答えて

8

here」のように、次のバージョンのscala 2.11では「未使用」という警告が表示されます。

は、あなたが最後のマイルストーンを使用してそれらを試すことができます-Xlint

の下で、未使用のローカル/プライベート用語や種類について警告し、未使用の輸入。

+0

2.11: '-Ywarn-unusedローカルおよびプライベートのval、vars、defsおよびtypesが使用されていないときに警告します.' – nedim