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

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

يعيد التابع grep مصفوفة تحوي كل عنصر مطابق لنمط محدَّد من عناصر الكائن القابل للتعداد الذي استدعي معه. إن أعطيت كتلة، فسيُمرَّر كل عنصر مطابق للنمط إليها ثم تعاد مصفوفة تحوي النتائج المقابلة التي تعيدها هذه الكتلة للعناصر المطابقة.

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

grep(pattern)  array
grep(pattern) { |obj| block }  array

المعاملات

pattern

النمط المراد مطابقته لكل عنصر من عناصر الكائن القابل للتعداد المعطى.

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

تعاد مصفوفة تحوي كل عنصر مطابق للنمط pattern من عناصر الكائن القابل للتعداد المعطى، أو القيم التي تعيدها الكتلة لكل عنصر مطابق للنمط بعد تمريره إليها.

أمثلة

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

(1..100).grep 38..44   #=> [38, 39, 40, 41, 42, 43, 44]
c = IO.constants
c.grep(/SEEK/)         #=> [:SEEK_SET, :SEEK_CUR, :SEEK_END]
res = c.grep(/SEEK/) { |v| IO.const_get(v) }
res                    #=> [0, 1, 2]

انظر أيضًا

  • التابع find_all: يعيد مصفوفة تحوي جميع العناصر المحققة للكتلة المعطاة (أي التي تعيدها معها قيمة صحيحة [true value]) من عناصر الكائن القابل للتعداد الذي استدعي معه.
  • التابع grep_v: يعدُّ نسخة معاكسة للتابع grep، إذ يعيد مصفوفة تحوي كل العناصر الغير مطابقة لنمط محدَّد من عناصر الكائن القابل للتعداد المعطى.

مصادر