التعداد
enum Direction {
Up,
Down,
Left,
Right,
}
let d = Direction::Up;
تعداد يحمل بيانات
enum Shape {
Circle(f64),
Rectangle(f64, f64),
}
let s = Shape::Circle(2.0);
مطابقة الأنماط: match
let area = match s {
Shape::Circle(r) => 3.14 * r * r,
Shape::Rectangle(w, h) => w * h,
};
⚠️
matchيجب أن يغطّي كل الاحتمالات، وإلا لن يُترجم — أمان إضافي.
النمط الافتراضي
let n = 3;
match n {
1 => println!("واحد"),
2 => println!("اثنان"),
_ => println!("غير ذلك"), // _ يلتقط الباقي
}
if let للحالة الواحدة
if let Direction::Up = d {
println!("للأعلى");
}
🎯 التالي: Option و Result.