الوصول إلى عناصر الـ Hash
جزء من قسم الأساسيات في رحلة Ruby على Coddy — الدرس 74 من 88.
الآن بعد أن عرفت كيفية إنشاء الـ hashes، ستحتاج إلى استرجاع القيم المخزنة بداخلها. على عكس المصفوفات (arrays) حيث تستخدم الفهارس الرقمية، تستخدم الـ hashes المفاتيح للوصول إلى قيمها.
ضع المفتاح داخل أقواس مربعة للحصول على قيمته المقابلة:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person["name"] # المخرجات: Alice
puts person["age"] # المخرجات: 25يجب أن يتطابق المفتاح تماماً مع ما استخدمته عند إنشاء الـ hash. إذا حاولت الوصول إلى مفتاح غير موجود، فإن Ruby تعيد nil:
person = {"name" => "Alice", "age" => 25}
puts person["country"] # المخرجات: (لا شيء - nil)يمكنك أيضاً استخدام طريقة fetch، والتي تتيح لك توفير قيمة افتراضية عندما يكون المفتاح مفقوداً:
person = {"name" => "Alice"}
puts person.fetch("name", "Unknown") # المخرجات: Alice
puts person.fetch("country", "Unknown") # المخرجات: Unknownهذا مفيد عندما تريد التعامل مع المفاتيح المفقودة بشكل سلس بدلاً من الحصول على nil.
التحدي
سهلاقرأ أربعة أسطر من المدخلات:
- اسم المنتج (string)
- السعر (float)
- الكمية في المخزون (integer)
- مفتاح للبحث عنه (string)
أنشئ hash يسمى product يحتوي على أزواج المفاتيح والقيم التالية:
"name"مرتبط باسم المنتج"price"مرتبط بالسعر (كـ float)"stock"مرتبط بالكمية (كـ integer)
بعد ذلك، استخدم طريقة fetch لاسترداد قيمة المفتاح المقدم في المدخل الرابع. إذا لم يكن المفتاح موجوداً، استخدم "Not found" كقيمة افتراضية. اطبع النتيجة.
على سبيل المثال، إذا كانت المدخلات هي Laptop، و 999.99، و 15، و price، يجب أن تكون النتيجة:
999.99إذا كانت المدخلات هي Keyboard، و 49.99، و 100، و name، يجب أن تكون النتيجة:
Keyboardإذا كانت المدخلات هي Mouse، و 29.99، و 50، و color، يجب أن تكون النتيجة:
Not foundإذا كانت المدخلات هي Monitor، و 299.0، و 8، و stock، يجب أن تكون النتيجة:
8ورقة مرجعية
للوصول إلى القيم في الـ hash، استخدم المفتاح داخل أقواس مربعة:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person["name"] # المخرجات: Alice
puts person["age"] # المخرجات: 25إذا لم يكن المفتاح موجوداً، فإن Ruby تعيد nil:
person = {"name" => "Alice", "age" => 25}
puts person["country"] # المخرجات: (لا شيء - nil)استخدم التابع fetch لتوفير قيمة افتراضية للمفاتيح المفقودة:
person = {"name" => "Alice"}
puts person.fetch("name", "Unknown") # المخرجات: Alice
puts person.fetch("country", "Unknown") # المخرجات: Unknownجرّب بنفسك
# قراءة المدخلات
product_name = gets.chomp
price = gets.chomp.to_f
quantity = gets.chomp.to_i
key_to_lookup = gets.chomp
# TODO: اكتب الكود الخاص بك أدناه
# قم بإنشاء hash يسمى 'product' بمفاتيح "name" و "price" و "stock"
# ثم استخدم طريقة fetch لاسترداد القيمة لـ key_to_lookup
# استخدم "Not found" كقيمة افتراضية إذا لم يكن المفتاح موجوداً
# طباعة النتيجة
puts resultيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعاملات المنطقية - الجزء الرابع7حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على مدخلات المستخدم2المتغيرات وأنواع البيانات
الأرقام والمتغيراتنوع البيانات Stringنوع البيانات Booleanنوع البيانات Symbolالتحقق من أنواع البياناتقواعد التسميةملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة For مع النطاقاتحلقة WhileBreakNextمراجعة - المضروب (Factorial)حلقة Timesحلقة Untilالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)11المصفوفات
إنشاء المصفوفاتالوصول إلى عناصر المصفوفةتعديل المصفوفاتدوال المصفوفاتمراجعة - مصفوفة النواتجمراجعة - المصفوفة المعكوسةاختصارات المصفوفات14Hashes
إنشاء الـ Hashesالوصول إلى عناصر الـ Hashتعديل الـ Hashesدوال الـ Hashمراجعة - Hash المنتجالـ Symbols كمفاتيح للـ Hash3المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةاختصارات العمليات الحسابيةمراجعة - العمليات الرياضية البسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
الإخراج باستخدام putsالإخراج باستخدام print و pالإخراج باستخدام المتغيراتالإدخال باستخدام getsدالة Chompتحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ