إنشاء الـ 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 استخدام أسماء ذات معنى لتنظيم بياناتك.
التحدي
سهلاقرأ ثلاثة أسطر من المدخلات:
- عنوان كتاب (string)
- اسم مؤلف (string)
- سنة نشر (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يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعاملات المنطقية - الجزء الرابع7حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على مدخلات المستخدم2المتغيرات وأنواع البيانات
الأرقام والمتغيراتنوع البيانات Stringنوع البيانات Booleanنوع البيانات Symbolالتحقق من أنواع البياناتقواعد التسميةملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة For مع النطاقاتحلقة WhileBreakNextمراجعة - المضروب (Factorial)حلقة Timesحلقة Untilالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةاختصارات العمليات الحسابيةمراجعة - العمليات الرياضية البسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
الإخراج باستخدام putsالإخراج باستخدام print و pالإخراج باستخدام المتغيراتالإدخال باستخدام getsدالة Chompتحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ