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

إنشاء الـ Hashes

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

تُعد المصفوفات (Arrays) رائعة لتخزين القوائم المرتبة، ولكنك تحتاج أحياناً إلى ربط القيم بتسميات محددة بدلاً من الفهارس الرقمية. يقوم الـ hash بتخزين البيانات كأزواج من المفاتيح والقيم (key-value pairs)، حيث يشير كل مفتاح إلى قيمة مقابلة.

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

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

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

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

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

scores = {}

puts scores  # النتيجة: {}

تُعد الـ Hashes مثالية لتمثيل كائنات من العالم الحقيقي بخصائص مسماة، مثل منتج له اسم وسعر، أو مستخدم له بريد إلكتروني وكلمة مرور. وعلى عكس المصفوفات (arrays) حيث يتعين عليك تذكر المواقع، تتيح لك الـ hashes استخدام أسماء ذات معنى لتنظيم بياناتك.

challenge icon

التحدي

سهل

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

  1. عنوان كتاب (string)
  2. اسم مؤلف (string)
  3. سنة نشر (integer)

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

  • "title" مرتبط بعنوان الكتاب
  • "author" مرتبط باسم المؤلف
  • "year" مرتبط بسنة النشر (كـ integer)

اطبع الـ hash باستخدام 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}

ورقة مرجعية

يخزن الـ hash البيانات كأزواج مفتاح-قيمة (key-value pairs)، حيث يشير كل مفتاح إلى قيمة مقابلة.

لإنشاء hash، استخدم الأقواس المتعرجة مع فصل المفاتيح والقيم بواسطة => (hash rocket):

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

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

يجب أن يكون كل مفتاح فريداً داخل الـ hash، ولكن يمكن للقيم أن تتكرر. يمكن أن تكون المفاتيح والقيم من أي نوع بيانات، بما في ذلك النصوص (strings) أو الأرقام أو المصفوفات (arrays).

يمكنك إنشاء hash فارغ:

scores = {}

puts scores  # المخرجات: {}

جرّب بنفسك

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

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


# طباعة الـ hash
puts book
quiz iconاختبر نفسك

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

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