🎯 Match: If-Else Siêu Cấp!
Mục Tiêu Bài Học
Sau bài này, bạn sẽ:
- ✅ Biết cách dùng
matchđể xử lý nhiều trường hợp - ✅ Hiểu exhaustive checking (bắt buộc xử lý hết trường hợp)
- ✅ Sử dụng wildcard pattern
_ - ✅ Viết code rõ ràng hơn if-else dài dòng
🤔 Vấn Đề Với If-Else Dài
Giả sử bạn cần kiểm tra nhiều trường hợp:
fn main() {
let diem = 85;
if diem >= 90 {
println!("Xuất sắc!");
} else if diem >= 80 {
println!("Giỏi!");
} else if diem >= 70 {
println!("Khá!");
} else if diem >= 50 {
println!("Trung bình!");
} else {
println!("Yếu!");
}
}
Vấn đề:
- ❌ Dài dòng, khó đọc
- ❌ Dễ quên trường hợp
- ❌ Không rõ ràng có bao nhiêu trường hợp
Giải pháp: Dùng match! 🎯
🎨 Match Là Gì?
match là công cụ pattern matching (so khớp mẫu) của Rust:
- Giống
switch-casetrong C/Java/JavaScript - Mạnh hơn nhiều - bắt buộc xử lý tất cả trường hợp
- Rõ ràng, an toàn, dễ đọc
Ẩn Dụ
Hãy tưởng tượng match như một bảng phân loại đồ bảo hộ:
- Nón bảo hiểm → Bảo vệ đầu
- Găng tay → Bảo vệ tay
- Giày an toàn → Bảo vệ chân
- Các loại khác → Kiểm tra thêm
Rust bắt buộc bạn phải phân loại hết tất cả đồ, không được bỏ sót! 🛡️