الوصول إلى عناصر الـ Hash
جزء من قسم الأساسيات في رحلة Ruby على Coddy. الدرس 74 من 88.
الآن بعد أن عرفت كيفية إنشاء الـ hashes، فأنت بحاجة إلى retrieve القيم المخزنة بداخلها. بخلاف المصفوفات حيث تستخدم الفهارس الرقمية، تستخدم الـ hashes الـ keys للوصول إلى قيمها.
ضع key داخل أقواس مربعة للحصول على قيمته المقابلة:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person["name"] # المخرجات: Alice
puts person["age"] # المخرجات: 25يجب أن يطابق المفتاح (`key`) تمامًا ما استخدمته عند إنشاء الـ `hash`. إذا حاولت الوصول إلى `key` غير موجود، فإن Ruby ترجع nil:
person = {"name" => "Alice", "age" => 25}
puts person["country"] # المخرجات: (لا شيء - nil)يمكنك أيضاً استخدام fetch method، والتي تتيح لك توفير قيمة default عندما يكون key مفقوداً:
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)
ثم، استخدم الـ method المسماة fetch لاسترجاع قيمة المفتاح المزود في الدخل الرابع. إذا كان المفتاح غير موجود، استخدم "<code>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جرّب بنفسك
# اقرأ المدخلات
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
# استخدم النص الدقيق من التعليمات كقيمة افتراضية إذا لم يكن المفتاح موجودًا
# أخرج النتيجة
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تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأتدرّب بنفسك: مترجم Ruby عبر الإنترنت