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

الوصول إلى عناصر الـ 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.

challenge icon

التحدي

سهل

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

  1. اسم المنتج (string)
  2. السعر (float)
  3. الكمية في المخزون (integer)
  4. مفتاح للبحث عنه (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
quiz iconاختبر نفسك

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

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