scalaの抽象クラスのパターンマッチの方法
abstract class A
case class AA(s: String) extends A
abstract class AB(n: Int) extends A
case class ABA(n: Int) extends AB(n)
case class ABB(n: Int) extends AB(n)
object Main extends App {
val list: List[A] = List(AA("aa"), ABA(12), ABB(34))
for(a <- list) {
a match {
case AA(s) => println("AA:" + s)
case AB(n) => println("AB:" + n)
}
}
}
このようなパターンマッチを書くには、どのようなunapplyを定義すれば良いのでしょうか。