اختصارات المصفوفات
جزء من قسم الأساسيات في رحلة Ruby على Coddy — الدرس 64 من 88.
توفر Ruby اختصارات مريحة لإنشاء المصفوفات، خاصة عند التعامل مع السلاسل النصية أو الأرقام المتسلسلة. توفر هذه الاختصارات الوقت وتجعل الكود الخاص بك أكثر نظافة.
تنشئ الصيغة %w مصفوفة من السلاسل النصية دون الحاجة إلى علامات اقتباس أو فواصل:
fruits = %w[apple banana cherry]
puts fruits # المخرجات: apple, banana, cherryهذا يعادل كتابة ["apple", "banana", "cherry"] ولكنه أكثر إيجازاً بكثير. تصبح كل كلمة مفصولة بمسافة عنصراً منفصلاً.
بالنسبة لمصفوفات الرموز، استخدم %i:
statuses = %i[pending active completed]
puts statuses # المخرجات: pending, active, completedلإنشاء مصفوفات من الأرقام المتسلسلة، يمكنك تحويل نطاق إلى مصفوفة باستخدام to_a:
numbers = (1..5).to_a
puts numbers # المخرجات: 1, 2, 3, 4, 5يمكنك أيضاً استخدام عامل النجمة (splat operator) * داخل أقواس المصفوفة:
countdown = [*5..10]
puts countdown # المخرجات: 5, 6, 7, 8, 9, 10تعد هذه الاختصارات مفيدة بشكل خاص عندما تحتاج إلى تحديد قائمة من القيم المعروفة بسرعة دون الفوضى البصرية الناتجة عن علامات الاقتباس والفاصلات.
التحدي
سهلاقرأ مدخلين:
- سطر واحد من الكلمات المفصولة بمسافات (على سبيل المثال،
red green blue yellow) - عددان صحيحان مفصولان بفاصلة يمثلان نطاقاً (على سبيل المثال،
3,7)
قم بتنفيذ المهام التالية:
- أنشئ مصفوفة من السلاسل النصية من المدخل الأول باستخدام صيغة الاختصار
%w. بما أن المدخل هو سلسلة نصية بالفعل، ستحتاج إلى استخدامsplitلتحويله إلى مصفوفة أولاً، ثم استعرض استخدام%wعن طريق إنشاء مصفوفة منفصلة تحتوي على الكلماتalphaوbetaوgamma. - أنشئ مصفوفة من الرموز (symbols) باستخدام
%iمع القيمstartوmiddleوend. - أنشئ مصفوفة من الأرقام المتسلسلة من النطاق المقدم في المدخل الثاني باستخدام عامل النشر (splat operator)
*داخل أقواس المصفوفة.
اطبع ما يلي في أسطر منفصلة:
- كل عنصر من مصفوفة كلمات المدخلات
- سطر فارغ
- كل عنصر من مصفوفة
%w(التي تحتوي على alpha، beta، gamma) - سطر فارغ
- كل عنصر من مصفوفة الرموز
%i - سطر فارغ
- كل عنصر من مصفوفة نطاق الأرقام
على سبيل المثال، إذا كانت المدخلات هي red green blue و 1,5، يجب أن يكون المخرج:
red
green
blue
alpha
beta
gamma
start
middle
end
1
2
3
4
5إذا كانت المدخلات هي sun moon star و 10,13، يجب أن يكون المخرج:
sun
moon
star
alpha
beta
gamma
start
middle
end
10
11
12
13ورقة مرجعية
توفر لغة Ruby اختصارات لإنشاء المصفوفات تجعل الكود أكثر نظافة وإيجازاً.
تُنشئ صيغة %w مصفوفة من السلاسل النصية (strings) بدون علامات اقتباس أو فواصل:
fruits = %w[apple banana cherry]
# تعادل ["apple", "banana", "cherry"]تُنشئ صيغة %i مصفوفة من الرموز (symbols):
statuses = %i[pending active completed]
# تعادل [:pending, :active, :completed]قم بتحويل نطاق (range) إلى مصفوفة باستخدام to_a:
numbers = (1..5).to_a
# تُنشئ [1, 2, 3, 4, 5]استخدم عامل النشر (splat operator) * داخل أقواس المصفوفة لإنشاء مصفوفات من النطاقات:
countdown = [*5..10]
# تُنشئ [5, 6, 7, 8, 9, 10]جرّب بنفسك
# قراءة الكلمات المفصولة بمسافات
words_input = gets.chomp
# قراءة النطاق (عددان صحيحان مفصولان بفاصلة)
range_input = gets.chomp
# TODO: اكتب الكود الخاص بك أدناه
# 1. إنشاء مصفوفة من words_input باستخدام split
# 2. إنشاء مصفوفة %w تحتوي على alpha، beta، gamma
# 3. إنشاء مصفوفة %i تحتوي على start، middle، end
# 4. تحليل النطاق وإنشاء مصفوفة باستخدام عامل splat (*)
# إخراج عناصر كل مصفوفة في أسطر منفصلة مع وجود أسطر فارغة بين المصفوفاتيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعاملات المنطقية - الجزء الرابع7حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على مدخلات المستخدم2المتغيرات وأنواع البيانات
الأرقام والمتغيراتنوع البيانات Stringنوع البيانات Booleanنوع البيانات Symbolالتحقق من أنواع البياناتقواعد التسميةملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة For مع النطاقاتحلقة WhileBreakNextمراجعة - المضروب (Factorial)حلقة Timesحلقة Untilالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةاختصارات العمليات الحسابيةمراجعة - العمليات الرياضية البسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
الإخراج باستخدام putsالإخراج باستخدام print و pالإخراج باستخدام المتغيراتالإدخال باستخدام getsدالة Chompتحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ