Menu
CoddyTech

الـ Symbols كمفاتيح للـ Hash

جزء من قسم الأساسيات في رحلة Ruby على Coddy. الدرس 78 من 88.

حتى الآن، كنت تستخدم السلاسل النصية كمفاتيح للتجزئة باستخدام صياغة سهم التجزئة. لكن مطوري Ruby يستخدمون عادةً الرموز كمفاتيح بدلًا منها، مما يوفر أسلوبًا أوضح وأكثر كفاءة.

هل تتذكر الرموز التي تعلمتها سابقًا؟ إنها معرّفات خفيفة الوزن وثابتة تبدأ بنقطتين رأسيتين. عند استخدام الرموز كمفاتيح، توفر Ruby صياغة مختصرة خاصة:

person = {name: "Alice", age: 25, city: "Paris"}

puts person  # الناتج: {:name=>"Alice", :age=>25, :city=>"Paris"}

لاحظ كيف يحل name: محل :name =>. لا تعمل هذه الصيغة المختصرة إلا عندما يكون المفتاح رمزًا. للوصول إلى القيم، استخدم الرمز مع الأقواس المربعة:

person = {name: "Alice", age: 25}

puts person[:name]  # المخرجات: Alice
puts person[:age]   # المخرجات: 25

تعمل إضافة الإدخالات وتعديلها بالطريقة نفسها:

person = {name: "Alice"}

person[:city] = "Paris"
person[:name] = "Bob"

puts person  # المخرجات: {:name=>"Bob", :city=>"Paris"}

يُفضَّل استخدام الرموز كمفاتيح للتجزئة لأنها أسرع في المقارنة من السلاسل النصية وتستهلك ذاكرة أقل. سترى هذا النمط في شيفرة Ruby باستمرار، لذا يجدر بك أن تعتاد عليه.

challenge icon

التحدي

سهل

اقرأ ثلاثة أسطر من الإدخال:

  1. ماركة السيارة (سلسلة نصية)
  2. اسم الطراز (سلسلة نصية)
  3. سنة (عدد صحيح)

أنشئ تجزئة باسم car باستخدام صيغة الاختصار للرموز (مثلًا: key: value) مع أزواج المفاتيح والقيم التالية:

  • اربط :brand بماركة السيارة
  • اربط :model باسم الطراز
  • اربط :year بالسنة (كعدد صحيح)

ثم نفّذ العمليات التالية:

  1. اطبع قيمة المفتاح :model
  2. أضف مفتاحًا جديدًا :color بقيمة "black"
  3. حدّث المفتاح :year بإضافة 1 إلى قيمته الحالية
  4. اطبع التجزئة النهائية

على سبيل المثال، إذا كانت المدخلات هي Toyota وCamry و2020، فيجب أن يكون الناتج:

Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}

إذا كانت المدخلات هي Honda وCivic و2018، فيجب أن يكون الناتج:

Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}

إذا كانت المدخلات هي Ford وMustang و2023، فيجب أن يكون الناتج:

Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}

جرّب بنفسك

# اقرأ المدخلات
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i

# TODO: اكتب الكود أدناه
# 1. أنشئ جدول تجزئة باسم 'car' باستخدام الصياغة المختصرة للرموز مع المفاتيح :brand و:model و:year

# 2. اطبع قيمة المفتاح :model

# 3. أضف مفتاحًا جديدًا :color بالقيمة "black"

# 4. حدّث المفتاح :year بإضافة 1 إلى قيمته الحالية

# 5. اطبع جدول التجزئة النهائي
quiz iconاختبر نفسك

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

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

تدرّب بنفسك: مترجم Ruby عبر الإنترنت