Match Expression di Rust
match adalah fitur pattern matching yang sangat powerful di Rust — mirip switch di bahasa lain, tapi jauh lebih ekspresif.
Sintaks Dasar
let angka = 3;
match angka {
1 => println!("Satu"),
2 => println!("Dua"),
3 => println!("Tiga"),
_ => println!("Lainnya"), // _ = wildcard (default)
}
Match sebagai Expression
let x = 5;
let pesan = match x {
1 => "satu",
2 => "dua",
3..=5 => "tiga sampai lima", // range pattern
_ => "lainnya",
};
println!("{}", pesan);
Multiple Patterns
let x = 4;
match x {
1 | 2 => println!("satu atau dua"), // OR pattern
3..=5 => println!("tiga sampai lima"), // range
_ => println!("lainnya"),
}
Match dengan Tuple
let koordinat = (0, -2);
match koordinat {
(0, 0) => println!("Origin"),
(x, 0) => println!("Di sumbu X: {}", x),
(0, y) => println!("Di sumbu Y: {}", y),
(x, y) => println!("Titik: ({}, {})", x, y),
}
Exhaustive Matching
Rust memaksa kita menangani semua kemungkinan. Jika ada pola yang belum ditangani, compiler akan error — ini mencegah bug!