Estoy haciendo una comparación con algunas clases de casos y me gustaría manejar dos de los casos de la misma manera. Algo como esto:
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"
}
}
Pero cuando hago esto, aparece el error:
(fragment of test.scala):10: error: illegal variable in pattern alternative
case B(sb) | C(sc) => "B"
Puedo hacerlo funcionar si elimino los parámetros de la definición de B y C, pero ¿cómo puedo hacer coincidir con los parámetros?