دمج المتغيرات في النصوص (String Interpolation)
تخيل أنك تريد طباعة رسالة ترحيب تحتوي على اسم المستخدم. كيف يمكنك دمج المتغير داخل النص؟ في هذا الدرس، سنتعلم تقنية قوية ومفيدة جداً في روبي!
ما هو String Interpolation؟
String Interpolation (دمج المتغيرات) هو طريقة لإدراج قيم المتغيرات أو نتائج التعبيرات داخل نص. بدلاً من تجميع أجزاء النص يدوياً، يمكنك وضع المتغير مباشرة داخل النص!
الناتج:
صياغة الدمج: #{}
القاعدة بسيطة:
- استخدم علامات اقتباس مزدوجة
"..." - ضع المتغير أو التعبير داخل
#{...}
الناتج:
مهم جداً: الدمج يعمل فقط مع علامات الاقتباس المزدوجة
"...". لا يعمل مع علامات الاقتباس المفردة'...'!
الفرق بين علامات الاقتباس
الناتج:
كما ترى، علامات الاقتباس المفردة تطبع #{name} حرفياً بدلاً من قيمة المتغير!
دمج تعبيرات حسابية
يمكنك وضع أي تعبير روبي داخل #{}، وليس فقط المتغيرات:
الناتج:
دمج استدعاءات الدوال
يمكنك أيضاً استدعاء دوال داخل #{}:
الناتج:
مقارنة: الدمج مقابل الربط (+)
هناك طريقتان لبناء نص يحتوي على متغيرات:
الطريقة الأولى: الربط باستخدام (+)
الناتج:
الطريقة الثانية: الدمج باستخدام #{}
الناتج:
لماذا الدمج أفضل؟
| الميزة | الربط (+) | الدمج (#{}) |
|---|---|---|
| سهولة القراءة | ❌ صعب | ✅ سهل |
| تحويل الأنواع | ❌ يدوي (to_s) | ✅ تلقائي |
| الأخطاء | ❌ خطأ إذا نسيت to_s | ✅ لا أخطاء |
| الأداء | ❌ أبطأ قليلاً | ✅ أسرع |
نصيحة: استخدم دائماً الدمج
#{}بدلاً من الربط+. إنه أسهل وأقل عرضة للأخطاء!
أمثلة عملية
بناء رسالة ترحيب
الناتج:
عرض معلومات منتج
الناتج:
بناء مسار ملف
الناتج:
دمج عدة أسطر
يمكنك استخدام الدمج في نصوص متعددة الأسطر باستخدام heredoc أو ثلاث علامات اقتباس:
الناتج:
الهروب من #{}
إذا أردت طباعة #{} حرفياً داخل علامات اقتباس مزدوجة، استخدم الشرطة المائلة العكسية \:
الناتج:
تعبيرات معقدة داخل #{}
يمكنك وضع أي تعبير روبي صالح داخل #{}:
الناتج:
نصائح مهمة
- استخدم دائماً علامات الاقتباس المزدوجة للنصوص التي تحتاج دمج
- لا تستخدم to_s عند الدمج - روبي تفعل ذلك تلقائياً
- اجعل التعبيرات بسيطة - إذا كان التعبير معقداً، احسبه في متغير أولاً
- تجنب الربط (+) عندما يكون الدمج ممكناً
تمرين: بناء نصوص ديناميكية
حان وقت التطبيق! في محرر الشيفرة على اليسار:
المطلوب:
- أنشئ متغير
cityيحتوي على "الرياض" - أنشئ متغير
temperatureيحتوي على 35 - أنشئ متغير
dayيحتوي على "الأحد" - استخدم الدمج لطباعة:
- "الطقس في الرياض"
- "اليوم: الأحد"
- "درجة الحرارة: 35 درجة مئوية"
- "الحرارة بالفهرنهايت: [القيمة]" (استخدم الصيغة: temperature * 9/5 + 32)
الناتج المتوقع:
تلميح: استخدم
#{}لإدراج المتغيرات والحسابات داخل النصوص. تذكر أن تستخدم علامات الاقتباس المزدوجة!
تذكّر: String Interpolation هو الطريقة المفضلة في روبي لبناء نصوص تحتوي على متغيرات. استخدم
"نص #{متغير} نص"بدلاً من الربط بـ+.