Kombiniere mehrere Fälle in Scala

Ich tue Matching gegen einige Fallklassen und möchte zwei der Fälle auf die gleiche Weise behandeln. Etwas wie das:

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"
  }
}

Aber wenn ich das tue, bekomme ich den Fehler:

(fragment of test.scala):10: error: illegal variable in pattern alternative
    case B(sb) | C(sc) => "B"

Ich kann es zum Laufen bringen Ich entferne die Parameter aus der Definition von B und C, aber wie kann ich mit den Parametern übereinstimmen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage