Không phải switch so-sánh-giá-trị đơn thuần. match so khớp cấu trúc: nó có thể destructure sequence/mapping/object, bắt biến từ bên trong, và thêm điều kiện if (guard).
Trúng nhánh nào thì gán luôn các phần con vào biến.
python
match point:
case (0, 0): return "origin"
case (x, 0): return f"x-axis at {x}"
case Point(x=x, y=y) if x == y:
return "diagonal"
case _: return "other"Khác biệt cần nhớ:
- Không fall-through như C — khớp một case là dừng.
- case name (tên trần) là capture (gán), không so với biến cùng tên. Muốn so với hằng phải dùng tên có dấu chấm (Color.RED) hoặc literal.