패턴 일치 구문을 체인화 할 수없는 이유는 무엇입니까? 예를 들어, 다음은,패턴 일치 "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