Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

اختصارات المصفوفات

جزء من قسم الأساسيات في رحلة 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

تعد هذه الاختصارات مفيدة بشكل خاص عندما تحتاج إلى تحديد قائمة من القيم المعروفة بسرعة دون الفوضى البصرية الناتجة عن علامات الاقتباس والفاصلات.

challenge icon

التحدي

سهل

اقرأ مدخلين:

  1. سطر واحد من الكلمات المفصولة بمسافات (على سبيل المثال، red green blue yellow)
  2. عددان صحيحان مفصولان بفاصلة يمثلان نطاقاً (على سبيل المثال، 3,7)

قم بتنفيذ المهام التالية:

  1. أنشئ مصفوفة من السلاسل النصية من المدخل الأول باستخدام صيغة الاختصار %w. بما أن المدخل هو سلسلة نصية بالفعل، ستحتاج إلى استخدام split لتحويله إلى مصفوفة أولاً، ثم استعرض استخدام %w عن طريق إنشاء مصفوفة منفصلة تحتوي على الكلمات alpha و beta و gamma.
  2. أنشئ مصفوفة من الرموز (symbols) باستخدام %i مع القيم start و middle و end.
  3. أنشئ مصفوفة من الأرقام المتسلسلة من النطاق المقدم في المدخل الثاني باستخدام عامل النشر (splat operator) * داخل أقواس المصفوفة.

اطبع ما يلي في أسطر منفصلة:

  1. كل عنصر من مصفوفة كلمات المدخلات
  2. سطر فارغ
  3. كل عنصر من مصفوفة %w (التي تحتوي على alpha، beta، gamma)
  4. سطر فارغ
  5. كل عنصر من مصفوفة الرموز %i
  6. سطر فارغ
  7. كل عنصر من مصفوفة نطاق الأرقام

على سبيل المثال، إذا كانت المدخلات هي 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 (*)

# إخراج عناصر كل مصفوفة في أسطر منفصلة مع وجود أسطر فارغة بين المصفوفات
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات