Tôi đang đối sánh với một số lớp trường hợp và muốn xử lý hai trong số các trường hợp theo cùng một cách. Một cái gì đó như thế này:
abstract class Foo
case class A extends Foo
case class B(s:String) extends Foo
case class C(s:String) extends Foo
def matcher(l: Foo): String = {
l match {
case A() => "A"
case B(sb) | C(sc) => "B"
case _ => "default"
}
}
Nhưng khi tôi làm điều này, tôi gặp lỗi:
(fragment of test.scala):10: error: illegal variable in pattern alternative
case B(sb) | C(sc) => "B"
Tôi có thể làm cho nó hoạt động Tôi xóa các tham số khỏi định nghĩa của B và C nhưng làm thế nào tôi có thể khớp với các tham số?