2013-07-17 27 views
5

我這個小斯卡拉例如: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)) 
    } 
} 

我覺得應該階警告「Z」和「X的比賽......」未被使用。我沒有注意到任何編譯器選項打開更多的警告。我正在使用scala 2.10.1。

想法?謝謝!

+3

這是編譯器指出的完全有效的scala代碼。未使用的變量警告通常是源代碼分析器可以查找和警告的內容。對於類似的代碼片段,'java'編譯器也不會顯示警告。 – Brian

+0

@Brian我不確定javac是基準。三名上訴人說,我不需要任何惡臭類型的安全!我在比賽中縮小了比分,但仍然在努力確定比賽的詳盡程度。它可以警告丟棄Unit的值,這表明它會警告它是否可以警告。 –

+0

嘗試添加'「-Ywarn-value-discard」'編譯器選項。 –

回答

8

正如你所看到的here,未使用的警告將在下一版本的scala 2.11中引入。

警告有關未使用私人/本地條件和類型,和未使用的進口,-Xlint

您可以使用最後一個里程碑試戴。

+0

2.11:'-Ywarn-unused當本地和私有vals,vars,defs和類型未使用時發出警告.' – nedim