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

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

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

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

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

المعاملات

n

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

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

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

أمثلة

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

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

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

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

انظر أيضًا

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

مصادر