Tại sao không thể kết hợp các cấu trúc phù hợp với mẫu? Ví dụ, sau đây là hợp pháp, nếu vô nghĩa,Giá trị "trả lại" đối sánh mẫu
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 _ => {}
}
nhưng đây không phải là:
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 _ => {}
}
tôi nghi ngờ đó là bởi vì tôi không nên làm việc đó ở nơi đầu tiên, nhưng về nguyên tắc Tôi không hiểu tại sao nó không hợp pháp.
'(một trận đấu {..}) phù hợp {..}' sẽ làm việc. – user2246674