Wenn ich versuche, eine Variable auf seiner Art zu entsprechen, wie in dem folgenden Code:Fallklassen entsprechen vom Typ
object CaseClassesApp extends App {
sealed trait A{}
final case class B() extends A{}
final case class C() extends A{}
def tryMatch(x: Any): String = x match {
case B => "It's a B!"
case C => "It's a C!"
case _ => "nope"
}
var testB = new B()
print(tryMatch(testB))
}
Sollte es mir nicht geben: „Es ist ein B!“? Warum bekomme ich stattdessen ein "Nein"?
Da Sie die Werte nicht verwenden, sollten Sie 'b: B' durch' _: B' (gleiches für 'c') ersetzen können. –
@sedulam Ich habe den modifizierten Code in meine IDE eingefügt, es funktioniert. Vielleicht ist der Link http://www.artima.com/pins1ed/case-classes-and-pattern-matching.html hilfreich und suchen Sie "typisierte Muster" in der html – Jerry
@ AngeloGenovese, ja, danke für Ihre Kommentare – Jerry