Menu
CoddyTech

إنشاء الـ Hashes

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

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

لإنشاء تجزئة، استخدم الأقواس المعقوفة مع مفاتيح وقيم يفصل بينها => (ويُسمى سهم التجزئة):

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

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

يجب أن يكون كل مفتاح فريدًا داخل التجزئة، لكن يمكن أن تتكرر القيم. يمكن أن تكون المفاتيح والقيم من أي نوع بيانات، بما في ذلك السلاسل النصية والأعداد وحتى المصفوفات.

يمكنك أيضًا إنشاء تجزئة فارغة وإضافة أزواج إليها لاحقًا:

scores = {}

puts scores  # يُخرج: {}

تُعدّ جداول التجزئة مثالية لتمثيل الكائنات الواقعية ذات السمات المسماة، مثل منتج له اسم وسعر، أو مستخدم له بريد إلكتروني وكلمة مرور. وعلى عكس المصفوفات التي عليك فيها تذكّر المواضع، تتيح لك جداول التجزئة استخدام أسماء ذات معنى لتنظيم بياناتك.

challenge icon

التحدي

سهل

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

  1. عنوان كتاب (سلسلة نصية)
  2. اسم المؤلف (سلسلة نصية)
  3. سنة النشر (عدد صحيح)

أنشئ تجزئة باسم book تتضمن ثلاثة أزواج من المفاتيح والقيم باستخدام صياغة سهم التجزئة (=>):

  • اربط "title" بعنوان الكتاب
  • اربط "author" باسم المؤلف
  • اربط "year" بسنة النشر (كعدد صحيح)

اطبع التجزئة باستخدام puts.

على سبيل المثال، إذا كانت المدخلات هي Ruby Basics وJane Smith و2023، فيجب أن يكون الناتج:

{"title"=>"Ruby Basics", "author"=>"Jane Smith", "year"=>2023}

إذا كانت المدخلات هي The Great Gatsby وF. Scott Fitzgerald و1925، فيجب أن يكون الناتج:

{"title"=>"The Great Gatsby", "author"=>"F. Scott Fitzgerald", "year"=>1925}

إذا كانت المدخلات هي 1984 وGeorge Orwell و1949، فيجب أن يكون الناتج:

{"title"=>"1984", "author"=>"George Orwell", "year"=>1949}

جرّب بنفسك

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

# TODO: أنشئ جدول تجزئة باسم 'book' يحتوي على ثلاثة أزواج من المفاتيح والقيم باستخدام صيغة سهم التجزئة (=>)
# يجب أن تكون المفاتيح: "title", "author", "year"


# اطبع جدول التجزئة
puts book
quiz iconاختبر نفسك

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

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

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