Avatar ·

كيفية مطابقة String مع النصوص الحرفية في Rust باستخدام match؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Rust وواجهت مشكلة عند استخدام match لمقارنة String. لدي متغير من نوع String، وأريد التحقق مما إذا كان يساوي نصاً حرفياً معيناً. على سبيل المثال، أكتب محلل أوامر بسيط: ```rust fn main() { let command = String::from("start"); match command { "start" => println!("تشغيل!"), "stop" => println!("إيقاف!"), _ => println!("أمر غير معروف"), } } ``` لكن المترجم يعطي خطأ: ``` error[E0308]: mismatched types expected struct `String`, found `&str` ``` أفهم أن String و &str نوعان مختلفان، ولكن كيف أكتب match بشكل صحيح؟ لقد جربت استخدام as_str()، لكنني لست متأكداً من أنها أفضل طريقة. كما سمعت أنه يمكن تحويل النصوص الحرفية إلى String، لكن هذا يبدو غير فعال. أرجو إرشادي حول كيفية مطابقة String مع النصوص الحرفية في Rust؟ هل هناك طريقة اصطلاحية أو أفضل الممارسات؟ شكراً!