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

من موسوعة حسوب

يبحث التابع max عن قيمة أكبر عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه ثم يعيده. إن أعطيت كتلة، فسيعيد التابع أكبر عنصر يحقق شرطًا معيَّنًا؛ أي تُجرَى عملية الموازنة عبر المعامل <=> بحسب العملية التي تنفذها الكتلة على كل عنصر والقيمة المقابلة التي تعيدها.

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

max  obj
max { |a, b| block }  obj
max(n)  array
max(n) { |a, b| block }  array

المعاملات

n

إن أعطي هذا المعامل، فسيُعاد أكبر n عنصر في مصفوفة. تُرتَّب العناصر آنذاك في المصفوفة بشكل تنازلي.

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

يعاد أكبر عنصر من عناصر الكائن القابل للتعداد المعطى، أو أكبر عنصر يحقق الشرط الذي تحدده الكتلة block إن أعطيت، أو أكبر n عنصر في مصفوفة إن مُرِّر هذا المعامل.

أمثلة

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

a = %w(albatross dog horse)
a.max                                   #=> "horse"
a.max { |a, b| a.length <=> b.length }  #=> "albatross"

إعادة المثال السابق ولكن مع تمرير المعامل n:

a = %w[albatross dog horse]
a.max(2)                                  #=> ["horse", "dog"]
a.max(2) {|a, b| a.length <=> b.length }  #=> ["albatross", "horse"]
[5, 1, 3, 4, 2].max(3)                    #=> [5, 4, 3]

انظر أيضًا

  • التابع max_by: يعيد العنصر الذي تعيد الكتلة المعطاة أكبر قيمة مقابلة له بعد تمرير عناصر الكائن القابل للتعداد إليها كلٌّ على حدة.
  • التابع min: يبحث عن قيمة أصغر عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه ثم يعيده.
  • التابع min_by: يعيد العنصر الذي تعيد الكتلة المعطاة أًصغر قيمة مقابلة له بعد تمرير عناصر الكائن القابل للتعداد إليها كلٌّ على حدة.
  • التابع minmax: يبحث عن قيمة أصغر وأكبر عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه ثم يعيدهما في مصفوفة.
  • التابع minmax_by: يعيد العنصرين الذيَن تعيد الكتلة المعطاة أًصغر وأكبر قيمة مقابلة لهما على التوالي بعد تمرير عناصر الكائن القابل للتعداد إليها كلٌّ على حدة.

مصادر