التابع Enumerable.sum في روبي

من موسوعة حسوب
مراجعة 08:33، 31 ديسمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (إنشاء الصفحة.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يعيد التابع sum مجموع عناصر الكائن القابل للتعداد الذي استدعي معه.

إن أعطيت كتلة، فستُطبَّق الكتلة على كل عنصر قبل الإضافة.

قد لا يأخذ التابع sum بالحسبان إعادة تعريف المعاملات + مثل + في الصنف Integer.

البنية العامة

sum(init=0)  number
sum(init=0) {|e| expr }  number

المعاملات

init

القيمة البدائية المراد البدء بها في عملية الجمع. القيمة الافتراضية هي: 0.

القيمة المعادة

يعاد عدد يمثِّل ناتج جمع عناصر الكائن القابل للتعداد المعطى.

أمثلة

مثال على استعمال التابع sum:

{ 1 => 10, 2 => 20 }.sum {|k, v| k * v }  #=> 50
(1..10).sum                               #=> 55
(1..10).sum {|v| v * 2 }                  #=> 110
[Object.new].each.sum                     #=> TypeError

يمكن استعمال هذا التابع مع الكائنات الغير عددية عبر تحديد المعامل init بشكل صريح:

{ 1 => 10, 2 => 20 }.sum([])                   #=> [1, 10, 2, 20]
"a\nb\nc".each_line.lazy.map(&:chomp).sum("")  #=> "abc"

انظر أيضًا

  • التابع group_by: يجمِّع عناصر الكائن القابل للتعداد الذي استدعي معه في مجموعات بحسب النتيجة المقابلة لكل عنصر التي تعيدها الكتلة المعطاة بعد تمريره إليها.
  • التابع max: يبحث عن قيمة أكبر عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه ثم يعيده.
  • التابع reduce: يجمع جميع عناصر الكائن القابل للتعداد الذي استدعي معه عبر تطبيق عملية ثنائية تُحدَّد بوساطة كتلة أو رمز يسمي تابعًا أو معاملًا.

مصادر