count، all?، any?، none?
جزء من قسم المنطق وتدفق العمليات في رحلة Ruby على Coddy. الدرس 24 من 56.
أربع طرق صغيرة من Enumerable تجيب عن أسئلة حول مجموعة دون إجبارك على كتابة حلقة تكرار.
تعيد count عدد العناصر التي تستوفي الكتلة:
[1, 2, 3, 4, 5].count { |n| n.even? } # 2
[1, 2, 3, 4, 5].count # 5 (بدون block، العدد الإجمالي)all? تكون true عندما يحقق كل عنصر الشرط المحدد في الكتلة:
[2, 4, 6].all? { |n| n.even? } # true
[2, 4, 7].all? { |n| n.even? } # falseany? تكون صحيحة عندما يحقق عنصر واحد على الأقل ذلك:
[1, 2, 3].any? { |n| n.even? } # true
[1, 3, 5].any? { |n| n.even? } # falseتكون none? صحيحة عندما لا يفعل أيٌّ منها ذلك:
[1, 3, 5].none? { |n| n.even? } # trueتتوقف الطرائق مبكرًا، إذ تتوقف any? عند أول تطابق، وتتوقف all? عند أول فشل. وهي غير مكلفة.
التحدي
سهلاقرأ قائمة مفصولة بفواصل من درجات الاختبار (أعداد صحيحة). تكون الفئة valid passing class عندما:
- لا توجد أي درجة
none?سالبة (اختبار غير مسجّل) - تكون
all?الدرجات على الأكثر100 - تكون
any?درجة مساوية تمامًا لـ100(درجة كاملة واحدة على الأقل) - تكون هناك 3 درجات على الأقل تساوي
>= 70(استخدمcount)
اطبع سطرًا واحدًا بالضبط:
Valid: <count> passingعند تحقق الشروط الأربعة جميعها (countهو عدد الدرجات>= 70)Invalidخلاف ذلك
بالنسبة إلى الإدخال 72,80,100,65,90: توجد 4 درجات >= 70، ولا توجد درجات سالبة، وجميع الدرجات <= 100، وإحدى الدرجات تساوي 100، لذا يكون الناتج Valid: 4 passing.
بالنسبة إلى 72,80,90: توجد 3 درجات passing ولكن لا توجد درجة كاملة، لذا تكون النتيجة Invalid.
جرّب بنفسك
scores = gets.chomp.split(",").map(&:to_i)
# TODO: ادمج all? و any? و none? و count لتحديد Valid مقابل Invalid
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق العمليات
1السلاسل النصية بعمق
نظرة عامة على أساليب السلاسل النصيةاستيفاء السلاسل النصيةالتكرار عبر السلاسل النصيةالتقسيم والضممراجعة - ناسج السلاسل النصية4Blocks، Procs و Lambdas
ما هي الكتلة؟do..end مقابل الأقواس المعقوفةالكلمة المفتاحية yieldمعاملات الكتلةProcs و Lambdasمراجعة - مكرّر مخصّص7Hashes - الجزء الثاني
Hash.new مع القيم الافتراضيةالتكرار عبر HashesHashes متداخلةالدمج والتحويلمراجعة - عدّاد التكرار10مشروع - سجلات الطلاب
نظرة عامة على المشروعإضافة طالب5قوة Enumerable
Select و Rejectتسلسل MapReduce / Injectcount، all?، any?، none?group_by و partitionsort_by، min_by، max_byمراجعة - خط أنابيب البيانات3المصفوفات ثنائية الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالتكرار عبر المصفوفات ثنائية الأبعادالأنماط الشائعة للمصفوفات ثنائية الأبعادمراجعة - عمليات المصفوفات6المشروع - مدير المكتبة
نظرة عامة على المشروعإضافة كتابتدرّب بنفسك: مترجم Ruby عبر الإنترنت