كيفية استخراج القيمة الداخلية من enum عندما أعرف بالتأكيد أي حالة هي؟
مرحباً! أكتب بلغة Rust وواجهت مشكلة أثناء العمل مع enums. لدي هذا الكود:
```rust
enum Message {
Text(String),
Number(i32),
Quit,
}
fn process(msg: Message) {
// أنا متأكد تماماً أن msg هي Text(String)
// لكن كيف يمكنني الحصول على النص؟
let text = msg; // هنا خطأ بالطبع
println!("الرسالة: {}", text);
}
```
كثيراً ما أواجه مواقف أعرف فيها بالتأكيد أي حالة من enum أتعامل معها - مثلاً بعد التحقق من شرط أو في سياق يضمنه منطق البرنامج. لكن Rust لا يسمح ببساطة "بفتح" enum واستخراج القيمة الداخلية.
أعرف عن `match`، لكن كتابة match كامل مع معالجة جميع الحالات عندما أكون متأكداً من حالة واحدة محددة يبدو مبالغاً فيه. استخدام `if let` يبدو...