【发布时间】:2012-11-01 18:03:29
【问题描述】:
我有三个密封的案例类。 Scala 会告诉我这场比赛是否详尽(我猜不是)?
value match {
case a: A => methodThatNeedsA(a)
case b: B => methodThatNeedsB(b)
case c: C => methodThatNeedsC(c)
}
我可以执行以下操作,我知道这将是详尽无遗的 - 但由于我不需要分解表达式,它看起来非常混乱:
value match {
case a @ A(_) => methodThatNeedsA(a)
case b @ B(_, _) => methodThatNeedsB(b)
case c @ C(_, _, _) => methodThatNeedsC(c)
}
有没有更好的方法来像这样完全基于类型进行调度?
【问题讨论】: