일부 케이스 클래스에 대해 일치를 수행하고 있으며 동일한 방식으로 두 케이스를 처리하고 싶습니다. 이 같은:
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"
}
}
하지만 이렇게하면 오류가 발생합니다.
(fragment of test.scala):10: error: illegal variable in pattern alternative
case B(sb) | C(sc) => "B"
B와 C의 정의에서 매개 변수를 제거하여 작동하도록 할 수 있지만 매개 변수와 어떻게 일치시킬 수 있습니까?