このファイル:このScalaパターンマッチのチェックされていない型引数についての警告?
Test.scala:6: warning: non variable type-argument A in type pattern Seq[A]
is unchecked since it is eliminated by erasure
case Seq(1,2,3) => "first"
Scalaのバージョン2.9.0.1:
object Test extends App {
val obj = List(1,2,3) : Object
val res = obj match {
case Seq(1,2,3) => "first"
case _ => "other"
}
println(res)
}
は、この警告を与えます。
マッチを実行するために消去されたタイプのパラメータがどのように必要かわかりません。
case strings : Seq[String] => ...
:その最初のケース句はOBJが3つの1に等しい要素、2、及び3
と配列であれば、私のようなものを書いていた場合、私はこの警告を理解するだろう尋ねることを意図していますなぜ警告を受け取るのですか?それを消すための良い方法は何ですか?
ところで、私はオブジェクトの静的型で何かに一致したいと思います。実際のコードでは、Lispデータのようなものを解析しています。これは、文字列、データ配列、シンボル、数値などです。
バージョン2.8.1ではこの警告は表示されません。 – thoredge
@thoredge、私の推測では2.9.0の警告はおそらく改善と見なされていました。この特定のケースが予見されたかどうかはわかりません。 – huynhjl