"これはどのように動作するのですか"より良い説明がありますか?私はそれが正常に動作しますクラスのそれぞれの前case
を追加する場合はもちろんなぜノンケースクラスに対してパターンマッチングを適用できないのですか?
Cannot resolve symbol 'Val'
Cannot resolve symbol 'Sup'
:
class TestShortMatch[T <: AnyRef] {
def foo(t: T): Unit = {
val f = (_: Any) match {
case Val(t) => println(t)
case Sup(l) => println(l)
}
}
class Val(t: T)
class Sup(l: Number)
}
とコンパイラの苦情:私は、私はこの1つを試してみました意味します。しかし、その理由は何ですか?コンパイラはいくつかの最適化を行い、特定のバイトコードを生成しますか?
標準的なリファレンスは、Scalaのプログラミングの第24章です。この本は第3版にあるので、第1版はオンラインですhttp://www.artima.com/pins1ed/extractors.html –