دوال الـ Hash
جزء من قسم الأساسيات في رحلة Ruby على Coddy. الدرس 76 من 88.
توفر Ruby عدة أساليب مضمّنة تساعدك على فحص التجزئات والعمل معها بفعالية أكبر. تتيح لك هذه الأساليب الوصول السريع إلى معلومات حول محتويات التجزئة.
تعيد الطريقة 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? مما إذا كان التجزؤ يحتوي على أي أزواج على الإطلاق:
data = {}
puts data.empty? # يُخرج: trueالتحدي
سهلاقرأ سطرين من الإدخال:
- تجزئة ممثلة بأزواج مفاتيح وقيم مفصولة بفواصل، بالتنسيق
key:value(مثلًا:name:Alice,age:25,city:Paris) - مفتاح للتحقق من وجوده (سلسلة نصية)
حلّل الإدخال الأول لإنشاء تجزئة، ثم استخدم أساليب التجزئة التي تعلمتها لإخراج المعلومات التالية، كلٌّ منها في سطر منفصل:
- اطبع كل مفتاح في التجزئة (مفتاح واحد في كل سطر)
- اطبع
---كفاصل - اطبع كل قيمة في التجزئة (قيمة واحدة في كل سطر)
- اطبع
---كفاصل - اطبع عدد أزواج المفاتيح والقيم في التجزئة
- اطبع
---كفاصل - اطبع
trueأوfalseللدلالة على ما إذا كانت التجزئة فارغة - اطبع
---كفاصل - اطبع
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جرّب بنفسك
# اقرأ الإدخال
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يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعاملات المنطقية - الجزء الرابع7حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على مدخلات المستخدم2المتغيرات وأنواع البيانات
الأرقام والمتغيراتنوع البيانات Stringنوع البيانات Booleanنوع البيانات Symbolالتحقق من أنواع البياناتقواعد التسميةملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة For مع النطاقاتحلقة WhileBreakNextمراجعة - المضروب (Factorial)حلقة Timesحلقة Untilالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةاختصارات العمليات الحسابيةمراجعة - العمليات الرياضية البسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
الإخراج باستخدام putsالإخراج باستخدام print و pالإخراج باستخدام المتغيراتالإدخال باستخدام getsدالة Chompتحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأتدرّب بنفسك: مترجم Ruby عبر الإنترنت