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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

يدمج التابع zip بين كل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه مع العناصر المقابلة له من كل معامل من المعاملات المُمرَّرة إليه. هذا يولد سلسلة من المصفوفات المكونة من n عنصر، إذ n هي عدد أكبر من عدد المعاملات المُمرَّرة بمقدار 1. طول السلسلة الناتجة ستكون enum.size. إن كان طول أي معامل أقل من enum.size، فستحل القيم nil مكان العناصر الشاغرة.

إن أعطيت كتلة، فستُستدعَى لكل مصفوفة ناتجة؛ خلا ذلك، ستُعاد مصفوفة من المصفوفات الناتجة.

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

zip(arg, ...)  an_array_of_array
zip(arg, ...) { |arr| block }  nil

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

تعاد مصفوفة من المصفوفات الناتجة عند عملية الدمج، أو تعاد القيمة nil إن أعطيت الكتلة block.

أمثلة

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

a = [0, 1, 2, 2, 3, 4, 4, 5, 0]
a.uniq  #=> [0, 1, 2, 3, 4, 5]

انظر أيضًا

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

مصادر