Avatar ·

ماذا يعني العامل r#""# في Rust وكيفية استخدام السلاسل النصية الخام؟

مرحبًا! بدأت مؤخرًا في تعلم Rust وواجهت بناء جملة غير مفهوم في كود شخص آخر. كان هناك شيء مكتوب مثل: ```rust let pattern = r#"^\\d+\\.\\d+\\.\\d+\\.\\d+$"#; let json = r#"{\"name\": \"John\", \"age\": 30}"#; ``` أرى أن هناك حرف `r` قبل السلسلة النصية، ثم الرموز `#"` و `"#`. ماذا يعني هذا؟ أعلم أن السلاسل النصية في Rust تُكتب بعلامات اقتباس مزدوجة `"..."`، وأن الرمز `\\` يُستخدم للهروب. لكن هنا يوجد سحر مع `#`. ما يربكني بشكل خاص هو وجود علامات اقتباس مزدوجة عادية داخل هذه السلسلة النصية. في سلسلة نصية عادية، كان عليّ كتابة `\\"` للهروب، لكن هنا علامات الاقتباس موجودة كما هي. وهذه الرموز `#` على الحواف - لماذا هي ضرورية؟ هل يمكن الاستغناء عنها؟ حاولت كتابة `r"..."` فقط، لكن المترجم يشتكي إذا كانت هناك علامات اقتباس داخل السلسلة النصية. أما مع `r#"..."#` فكل شيء يعمل. لماذا؟ وماذا لو احتجت استخدام `"#` مباشرة داخل السلسلة النصية؟ على سبيل المثال، إذا كنت أكتب كودًا يُنشئ JSON أو