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

من موسوعة حسوب
< Ruby‏ | Array
مراجعة 10:31، 3 أكتوبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (مراجعة وتدقيق.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يحول التابع zip الوسائط الممرَّرة إليه إلى مصفوفات ثم يدمج عناصر المصفوفة التي استُدعيت معه مع العناصر المقابلة في الوسائط (المصفوفات) المُمرَّرة.

يولد هذا التابع عددًا من المصفوفات تحوي كلًّا منها n عنصر، إذ n هو عدد الوسائط الممررة مضافًا إليها 1.

إن كان حجم أحد الوسائط أصغر من حجم المصفوفة الأصلية، فسيعوض التابع القيمة nil مكان القيم الناقصة.

في حال تمرير كتلة برمجية كوسيط، ستُستدعى تلك الكتلة مع كل مصفوفة من المصفوفات الناتجة عن عملية الدمج، وإلا فستعاد تلك المصفوفات الناتجة فقط.

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

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

المعاملات

arg

الوسيط المراد تحويله إلى مصفوفة ثم دمج عناصره مع العناصر المقابلة لها في المصفوفة المعطاة.

الوسائط الأخرى المراد تحويلها إلى مصفوفات ثم دمج عناصرها مع العناصر المقابلة لها في المصفوفة المعطاة.

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

تعاد مصفوفة جديدة تحوي مصفوفات ناتجة عن دمج عناصر المصفوفة المعطاة مع العناصر المقابلة لها في الوسيط arg والوسائط الأخرى الممررة.

أمثلة

أمثلة على استخدام التابع zip:

a = [ 4, 5, 6 ]
b = [ 7, 8, 9 ]
[1, 2, 3].zip(a, b)   #=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
[1, 2].zip(a, b)      #=> [[1, 4, 7], [2, 5, 8]]
a.zip([1, 2], [8])    #=> [[4, 1, 8], [5, 2, nil], [6, nil, nil]]

انظر أيضًا

  • التابع combination: يُجمِّع عناصر المصفوفة المعطاة مع بعضها بعضًا في مصفوفات بطول يساوي القيمة n الممررة إليه ثمَّ يضع هذه المصفوفات في المصفوفة نفسها المعطاة ويعيدها.
  • التابع permutation: يعيد كل التبديلات (permutations) الممكنة لجميع عناصر مصفوفة، أو كل التبديلات المكونة من n عنصر من عناصر المصفوفة فقط ثم يعيد المصفوفة نفسها.
  • التابع product: يوزِّع عناصر المصفوفة التي استدعيت معه على جميع عناصر المصفوفات الممرَّرة إليه.

مصادر