وحدة Enumerable
إمكانات مشتركة للمجموعات
وحدة Enumerable درس مجاني في Ruby Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ruby Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ruby Academy 4 دروس في المجموع.
ما هي Enumerable؟
Enumerable وحدة تمنح المجموعات، مثل المصفوفات وhash والنطاقات، مجموعة مشتركة من الأساليب القوية. ويمكن لأي فئة تحتوي على each تضمينها.
puts [1, 2, 3].is_a?(Enumerable)
puts (1..3).is_a?(Enumerable)include? و member?
تتحقق include? مما إذا كانت مجموعة ما تحتوي على قيمة.
nums = [10, 20, 30]
puts nums.include?(20)
puts (1..5).include?(3)count
يعيد count الحجم، أو يحسب العناصر المطابقة عند استخدام كتلة.
nums = [1, 2, 3, 4]
puts nums.count
puts nums.count { |n| n.even? }min و max و minmax
اعثروا على القيم القصوى باستخدام min أو max، أو على كلتيهما معًا باستخدام minmax.
nums = [4, 1, 7, 3]
puts nums.min
puts nums.max
puts nums.minmax.inspectsum
يجمع sum جميع العناصر. ويمكنكم تمرير قيمة ابتدائية.
puts [1, 2, 3].sum
puts [1, 2, 3].sum(100)sort و sort_by
يرتّب sort العناصر، بينما يرتّب sort_by العناصر حسب مفتاح محسوب.
words = ["pear", "a", "fig"]
puts words.sort.inspect
puts words.sort_by { |w| w.length }.inspectany? و all?
تكون any? صحيحة إذا طابق عنصر واحد على الأقل الشرط، بينما تكون all? صحيحة فقط إذا طابقت جميع العناصر الشرط.
nums = [2, 4, 6]
puts nums.all? { |n| n.even? }
puts nums.any? { |n| n > 5 }none? و find
تكون none? صحيحة إذا لم يطابق أي عنصر الشرط. ويعيد find، وهو اسم مستعار لـdetect، أول تطابق.
nums = [1, 3, 5]
puts nums.none? { |n| n.even? }
puts nums.find { |n| n > 2 }first و take
يحصل first على العنصر أو العناصر الأولى، بينما يأخذ take عددًا من البداية ويتجاوز drop هذه العناصر.
nums = [10, 20, 30, 40]
puts nums.first(2).inspect
puts nums.drop(2).inspectgroup_by
ينشئ group_by بنية hash تجمع العناصر في مجموعات حسب نتيجة الكتلة.
nums = [1, 2, 3, 4, 5]
groups = nums.group_by { |n| n.even? ? :even : :odd }
puts groupseach_with_index
يمرّر each_with_index كلًا من العنصر وموضعه.
%w[a b c].each_with_index do |item, i|
puts "#{i}: #{item}"
endاختبار سريع
تحققوا من معرفتكم بـ Enumerable.
مراجعة
تمنح Enumerable المجموعات قدرات قوية:
include?وcountوmin/maxوsumsort/sort_byوany?/all?/none?findوfirst/take/dropgroup_byوeach_with_index
التالي: التعمق في map وselect وreject.
puts [3, 1, 2].sort.inspectالأسئلة الشائعة
هل درس «وحدة Enumerable» مجاني؟
نعم — نص درس «وحدة Enumerable» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.
ماذا ستتعلم في «وحدة Enumerable»؟
إمكانات مشتركة للمجموعات تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟
لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «وحدة Enumerable»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟
نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إنشاء النطاقات
- وحدة Enumerable
- map وselect وreject
- reduce وeach_with_object