为什么不可能链接模式匹配结构?例如,下面是合法的,如果无厘头,模式匹配“返回”值
val a = ADT(5)
val b = a match {
case ADT(a) if a > 4 => ADT(a * 3)
case ADT(a) => ADT(a + 1)
}
b match {
case ADT(a) if a > 13 => doSomething(a)
case _ => {}
}
但下面的不是:
a match {
case ADT(a) if a > 4 => ADT(a * 3)
case ADT(a) => ADT(a + 1)
} match {
case ADT(a) if a > 13 => doSomething(a)
case _ => {}
}
我怀疑这是因为我不应该摆在首位那样做,但原则我不明白为什么它不合法。
'(匹配{..})匹配{..}'会工作。 – user2246674 2013-05-04 04:55:50