Avatar ·

كيفية استخراج القيمة الداخلية من متغير enumeration (enum) عندما أعرف بالضبط أي متغير هو؟

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