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

تعديل الـ Hashes

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

إن الـ Hashes ليست ثابتة بمجرد إنشائها. يمكنك إضافة أزواج مفتاح-قيمة (key-value pairs) جديدة، وتحديث القيم الموجودة، وإزالة المدخلات أثناء تشغيل برنامجك.

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

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

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

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

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

لإزالة زوج مفتاح-قيمة، استخدم طريقة 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. اسم الطالب (سلسلة نصية string)
  2. الدرجة الأولية (عدد صحيح integer)
  3. درجة جديدة للتحديث (عدد صحيح integer)
  4. زوج مفتاح-قيمة جديد بتنسيق key:value (على سبيل المثال، subject:Math)

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

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

ثم قم بإجراء هذه التعديلات:

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

اطبع الاسم المحذوف في السطر الأول، ثم اطبع الـ hash النهائي في السطر الثاني.

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

ورقة مرجعية

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

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 القيمة التي تمت إزالتها:

removed_age = person.delete("age")

puts removed_age  # المخرجات: 25

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

جرّب بنفسك

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

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

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

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

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