パターンマッチング構造をチェーン化できないのはなぜですか?例えば、以下は、パターン一致 "return"の値
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