Menu
CoddyTech

تعديل الـ Hashes

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

لا تبقى جداول التجزئة ثابتة بعد إنشائها. يمكنك إضافة أزواج مفتاح-قيمة جديدة، وتحديث القيم الموجودة، وإزالة المدخلات أثناء تشغيل برنامجك.

لإضافة زوج جديد أو تحديث قيمة موجودة، أسند قيمة إلى المفتاح باستخدام الأقواس المربعة:

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

person["city"] = "Paris"      # يضيف زوجًا جديدًا من المفتاح والقيمة
person["age"] = 26            # يحدّث القيمة الموجودة

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

إذا كان المفتاح موجودًا، فسيُستبدلَت قيمته. وإذا لم يكن موجودًا، فسيُضاف زوج جديد إلى التجزئة.

لإزالة زوج مفتاح-قيمة، استخدم الطريقة delete مع المفتاح الذي تريد إزالته:

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

person.delete("city")

puts person  # يُخرج: {"name"=>"Alice", "age"=>25}

تعيد الطريقة delete القيمة التي أُزيلت، وقد يكون ذلك مفيدًا إذا احتجت إلى استخدامها:

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

removed_age = person.delete("age")

puts removed_age  # يُخرج: 25

إذا حاولت حذف مفتاح غير موجود، فستُرجع Ruby ببساطة nil دون إثارة خطأ.

challenge icon

التحدي

سهل

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

  1. اسم طالب (سلسلة نصية)
  2. درجة أولية (عدد صحيح)
  3. درجة جديدة للتحديث (عدد صحيح)
  4. زوج جديد من مفتاح وقيمة بالتنسيق key:value (مثلًا، subject:Math)

أنشئ تجزئة باسم student تحتوي على أزواج المفتاح والقيمة الأولية التالية:

  • اربط "name" باسم الطالب
  • اربط "grade" بالدرجة الأولية (كعدد صحيح)

ثم أجرِ التعديلات التالية:

  1. حدّث المفتاح "grade" بقيمة الدرجة الجديدة
  2. أضف زوجًا جديدًا من مفتاح وقيمة باستخدام المفتاح والقيمة من الإدخال الرابع (يجب أن تظل القيمة سلسلة نصية)
  3. احذف المفتاح "name" من التجزئة وخزّن القيمة المحذوفة

اطبع الاسم المحذوف في السطر الأول، ثم اطبع التجزئة النهائية في السطر الثاني.

على سبيل المثال، إذا كانت المدخلات هي Alice و85 و92 وsubject:Math، فيجب أن يكون الناتج:

Alice
{"grade"=>92, "subject"=>"Math"}

إذا كانت المدخلات هي Bob و70 و75 وstatus:passing، فيجب أن يكون الناتج:

Bob
{"grade"=>75, "status"=>"passing"}

إذا كانت المدخلات هي Charlie و100 و95 وnote:excellent، فيجب أن يكون الناتج:

Charlie
{"grade"=>95, "note"=>"excellent"}

جرّب بنفسك

# اقرأ المدخلات
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp

# TODO: اكتب الشيفرة أدناه
# 1. أنشئ جدول تجزئة باسم 'student' يحتوي على المفتاحين "name" و"grade"
# 2. حدّث المفتاح "grade" بقيمة التقدير الجديدة
# 3. حلّل key_value_pair وأضفه إلى جدول التجزئة
# 4. احذف المفتاح "name" وخزّن القيمة المحذوفة

# اطبع الاسم المحذوف
puts removed_name
# اطبع جدول التجزئة النهائي
puts student
quiz iconاختبر نفسك

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

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

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