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

دوال الـ Hash

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

توفر لغة Ruby العديد من الطرق (methods) المدمجة التي تساعدك على فحص الـ hashes والتعامل معها بشكل أكثر فعالية. تمنحك هذه الطرق وصولاً سريعاً إلى معلومات حول محتويات الـ hash الخاص بك.

تُرجع الطريقة keys مصفوفة تحتوي على جميع المفاتيح الموجودة في الـ hash:

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

puts person.keys  # المخرجات: name, age, city

وبالمثل، تُرجع الطريقة values مصفوفة تحتوي على جميع القيم:

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

puts person.values  # المخرجات: Alice, 25, Paris

للتحقق مما إذا كان مفتاح معين موجوداً، استخدم key? أو الاسم المستعار له has_key?:

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

puts person.key?("name")     # المخرجات: true
puts person.key?("country")  # المخرجات: false

تخبرك الطريقة length بعدد أزواج المفتاح والقيمة التي يحتوي عليها الـ hash:

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

puts person.length  # المخرجات: 3

أخيرًا، يتحقق empty? مما إذا كان الـ hash يحتوي على أي أزواج على الإطلاق:

data = {}
puts data.empty?  # المخرجات: true
challenge icon

التحدي

سهل

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

  1. هاش (hash) مُمثل كأزواج مفتاح-قيمة مفصولة بفاصلة بتنسيق key:value (على سبيل المثال، name:Alice,age:25,city:Paris)
  2. مفتاح للتحقق من وجوده (سلسلة نصية)

قم بتحليل المدخل الأول لإنشاء هاش، ثم استخدم طرق الهاش (hash methods) التي تعلمتها لإخراج المعلومات التالية، كل منها في سطر مستقل:

  1. اطبع كل مفتاح في الهاش (واحد في كل سطر)
  2. اطبع --- كفاصل
  3. اطبع كل قيمة في الهاش (واحدة في كل سطر)
  4. اطبع --- كفاصل
  5. اطبع عدد أزواج المفتاح-القيمة في الهاش
  6. اطبع --- كفاصل
  7. اطبع true أو false للإشارة إلى ما إذا كان الهاش فارغاً
  8. اطبع --- كفاصل
  9. اطبع true أو false للإشارة إلى ما إذا كان المفتاح من المدخل الثاني موجوداً في الهاش

على سبيل المثال، إذا كانت المدخلات هي name:Alice,age:25,city:Paris و age، يجب أن يكون المخرج:

name
age
city
---
Alice
25
Paris
---
3
---
false
---
true

إذا كانت المدخلات هي product:Laptop,price:999 و stock، يجب أن يكون المخرج:

product
price
---
Laptop
999
---
2
---
false
---
false

إذا كانت المدخلات هي status:active و status، يجب أن يكون المخرج:

status
---
active
---
1
---
false
---
true

ورقة مرجعية

توفر لغة Ruby طرقاً مدمجة لفحص والتعامل مع الـ hashes:

تُرجع الطريقة keys مصفوفة تحتوي على جميع المفاتيح:

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

تُرجع الطريقة values مصفوفة تحتوي على جميع القيم:

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

تتحقق الطريقة key? (أو اسمها البديل has_key?) مما إذا كان مفتاح معين موجوداً:

person = {"name" => "Alice", "age" => 25}
puts person.key?("name")     # المخرجات: true
puts person.key?("country")  # المخرجات: false

تُرجع الطريقة length عدد أزواج المفاتيح والقيم:

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

تتحقق الطريقة empty? مما إذا كان الـ hash يحتوي على أي أزواج:

data = {}
puts data.empty?  # المخرجات: true

جرّب بنفسك

# قراءة المدخلات
input_string = gets.chomp
key_to_check = gets.chomp

# تحليل سلسلة المدخلات لإنشاء hash
hash = {}
input_string.split(',').each do |pair|
  key, value = pair.split(':')
  hash[key] = value
end

# TODO: اكتب الكود الخاص بك أدناه
# استخدم دوال الـ hash للقيام بما يلي:
# 1. طباعة كل مفتاح (واحد في كل سطر)
# 2. طباعة "---" كفاصل
# 3. طباعة كل قيمة (واحدة في كل سطر)
# 4. طباعة "---" كفاصل
# 5. طباعة عدد أزواج المفاتيح والقيم
# 6. طباعة "---" كفاصل
# 7. طباعة true/false إذا كان الـ hash فارغاً
# 8. طباعة "---" كفاصل
# 9. طباعة true/false إذا كان key_to_check موجوداً في الـ hash
quiz iconاختبر نفسك

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

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