التابع Enumerable.detect
في روبي
< Ruby | Enumerable
يمرِّر التابع detect
كل عنصر من عناصر المُعدِّد الذي استدعي معه إلى الكتلة المعطاة ثم يعيد أول عنصر لا تعيد الكتلة معه القيمة false
. إن لم يتطابق أي عنصر، فسيُستدعَى التابع الذي مُرِّر إليه ويعيد قيمته.
البنية العامة
detect(ifnone = nil) { |obj| block } → obj or nil
detect(ifnone = nil) → an_enumerator
المعاملات
ifnone
التابع المراد تنفيذه عند عدم مطابقة الكتلة لأي عنصر من عناصر المُعدِّد المعطى. القيمة الافتراضية هي: nil
.
القيمة المعادة
يعاد أول عنصر لا تعيد الكتلة معه القيمة false
بعد تمرير عناصر المُعدِّد إليها تباعًا، أو يعاد ناتج تنفيذ التابع ifnone
إن لم يتطابق أي عنصر، أو تعاد القيمة nil
إن لم يُعطَ التابع ifnone
.
أمثلة
مثال على استعمال التابع detect
:
(1..100).detect => #<Enumerator: 1..100:detect>
(1..100).find => #<Enumerator: 1..100:find>
(1..10).detect { |i| i % 5 == 0 and i % 7 == 0 } #=> nil
(1..10).find { |i| i % 5 == 0 and i % 7 == 0 } #=> nil
(1..100).detect { |i| i % 5 == 0 and i % 7 == 0 } #=> 35
(1..100).find { |i| i % 5 == 0 and i % 7 == 0 } #=> 35
انظر أيضًا
- التابع
collect
: يعيد مصفوفة جديدة تحوي نتائج تنفيذ الكتلة المعطاة دفعةً واحدةً مع كل عنصر من عناصر المُعدِّد الذي استدعي معه.
- التابع
drop_while
: يحذف العناصر الأولى المحقِّقة لشرط معيِّن من المُعدِّد المعطى ثم يعيد مصفوفة تحوي العناصر المتبقية.