爲什麼不可能鏈接模式匹配結構?例如,下面是合法的,如果無厘頭,模式匹配「返回」值
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