تضمين النصوص (String Interpolation)
جزء من قسم المنطق وتدفق العمليات في رحلة Ruby على Coddy — الدرس 2 من 56.
تسمح لك لغة Ruby بتضمين المتغيرات والتعبيرات مباشرة داخل سلسلة نصية محاطة بعلامات اقتباس مزدوجة باستخدام #{...}. يُسمى هذا إدراج السلسلة النصية (string interpolation).
name = "Sam"
age = 30
puts "#{name} is #{age} years old." # سام يبلغ من العمر 30 عاماً.التعبير الموجود داخل #{...} يمكن أن يكون أي شيء يقوم Ruby بتقييمه:
price = 19.5
puts "Total: $#{price * 1.2}" # الإجمالي: $23.4يعمل الإقحام (Interpolation) فقط في السلاسل النصية المحاطة بعلامات اقتباس مزدوجة. تعامل علامات الاقتباس المفردة #{...} كنص عادي.
x = 5
puts "x is #{x}" # x هو 5
puts 'x is #{x}' # x هو #{x}التحدي
مبتدئاقرأ اسماً وعمراً (سطران من المدخلات). اطبع سطراً واحداً بالتنسيق التالي:
Hello, <name>! In 5 years you will be <age+5>.للمدخلات Alice ثم 30، يكون المخرج:
Hello, Alice! In 5 years you will be 35.ورقة مرجعية
إدراج السلاسل النصية (String interpolation) يقوم بتضمين المتغيرات/التعبيرات في السلاسل النصية ذات علامات الاقتباس المزدوجة باستخدام #{...}:
name = "Sam"
age = 30
puts "#{name} is #{age} years old." # سام يبلغ من العمر 30 عامًا.
puts "Total: $#{19.5 * 1.2}" # المجموع: $23.4تتعامل علامات الاقتباس المفردة مع #{...} كنص عادي — الإدراج يعمل فقط مع علامات الاقتباس المزدوجة.
جرّب بنفسك
name = gets.chomp
age = gets.to_i
# TODO: استخدم استكمال السلسلة (string interpolation) لطباعة الرسالة
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق العمليات
1السلاسل النصية بعمق
نظرة عامة على دوال السلاسل النصيةتضمين النصوص (String Interpolation)التكرار عبر السلاسل النصيةالتقسيم والربط (Split و Join)مراجعة - نساج النصوص4Blocks و Procs و Lambdas
ما هو الـ Block؟do..end مقابل الأقواس { }الكلمة المفتاحية yieldمعاملات الـ BlockProcs و Lambdasمراجعة - Custom Iterator مخصص7Hashes - الجزء الثاني
Hash.new مع القيم الافتراضيةالتكرار عبر الـ Hashesالـ Hashes المتداخلةالدمج والتحويلمراجعة - عداد التكرار10مشروع - سجلات الطلاب
نظرة عامة على المشروعإضافة طالب5قوة الـ Enumerable
Select و Rejectتسلسل MapReduce / Injectcount، all?، any?، none?group_by و partitionsort_by، min_by، max_byمراجعة - Data Pipeline