الفرق بين المراجعتين لصفحة: «Ruby/Array/zip»

من موسوعة حسوب
< Ruby‏ | Array
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 4: سطر 4:
[[تصنيف: Ruby Array]]
[[تصنيف: Ruby Array]]
يحول التابع <code>zip</code> الوسائط الممرَّرة إليه إلى مصفوفات ثم يدمج عناصر المصفوفة التي استُدعيت معه مع العناصر المقابلة في الوسائط (المصفوفات) المُمرَّرة.
يحول التابع <code>zip</code> الوسائط الممرَّرة إليه إلى مصفوفات ثم يدمج عناصر المصفوفة التي استُدعيت معه مع العناصر المقابلة في الوسائط (المصفوفات) المُمرَّرة.
يولد هذا التابع عددًا من المصفوفات تحوي كلًّا منها <code>n</code> عنصر، إذ <code>n</code> هو عدد الوسائط الممررة مضافًا إليها <code>1</code>.
يولد هذا التابع عددًا من المصفوفات تحوي كلًّا منها <code>n</code> عنصر، إذ <code>n</code> هو عدد الوسائط الممررة مضافًا إليها <code>1</code>.


سطر 10: سطر 11:
في حال تمرير كتلة برمجية كوسيط، ستُستدعى تلك الكتلة مع كل مصفوفة من المصفوفات الناتجة عن عملية الدمج، وإلا فستعاد تلك المصفوفات الناتجة فقط.
في حال تمرير كتلة برمجية كوسيط، ستُستدعى تلك الكتلة مع كل مصفوفة من المصفوفات الناتجة عن عملية الدمج، وإلا فستعاد تلك المصفوفات الناتجة فقط.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby"> zip(arg, ...) → new_ary
<syntaxhighlight lang="ruby">zip(arg, ...) → new_ary
zip(arg, ...) { |arr| block } → nil
zip(arg, ...) { |arr| block } → nil
  </syntaxhighlight>
  </syntaxhighlight>
سطر 24: سطر 25:
==أمثلة==
==أمثلة==
أمثلة على استخدام التابع <code>zip</code>:
أمثلة على استخدام التابع <code>zip</code>:
<syntaxhighlight lang="ruby"> a = [ 4, 5, 6 ]
<syntaxhighlight lang="ruby">a = [ 4, 5, 6 ]
b = [ 7, 8, 9 ]
b = [ 7, 8, 9 ]
[1, 2, 3].zip(a, b)  #=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
[1, 2, 3].zip(a, b)  #=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
سطر 32: سطر 33:
  </syntaxhighlight>
  </syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
* التابع [[Ruby/Array/combination | <code>combination</code>]]: يُجمِّع عناصر المصفوفة المعطاة مع بعضها بعضًا في مصفوفات بطول يساوي القيمة <code>n</code> الممررة إليه ثمَّ يضع هذه المصفوفات في المصفوفة نفسها المعطاة ويعيدها.
* التابع<nowiki/>[[Ruby/Array/combination | <code>combination</code>]]: يُجمِّع عناصر المصفوفة المعطاة مع بعضها بعضًا في مصفوفات بطول يساوي القيمة <code>n</code> الممررة إليه ثمَّ يضع هذه المصفوفات في المصفوفة نفسها المعطاة ويعيدها.
* التابع [[Ruby/Array/permutation | <code>permutation</code>]]: يعيد كل التبديلات (<code>permutations</code>) الممكنة لجميع عناصر مصفوفة، أو كل التبديلات المكونة من <code>n</code> عنصر من عناصر المصفوفة فقط ثم يعيد المصفوفة نفسها.
* التابع<nowiki/>[[Ruby/Array/permutation | <code>permutation</code>]]: يعيد كل التبديلات (permutations) الممكنة لجميع عناصر مصفوفة، أو كل التبديلات المكونة من <code>n</code> عنصر من عناصر المصفوفة فقط ثم يعيد المصفوفة نفسها.
* التابع [[Ruby/Array/product | <code>product</code>]]: يوزِّع عناصر المصفوفة التي استدعيت معه على جميع عناصر المصفوفات الممرَّرة إليه.
* التابع<nowiki/>[[Ruby/Array/product | <code>product</code>]]: يوزِّع عناصر المصفوفة التي استدعيت معه على جميع عناصر المصفوفات الممرَّرة إليه.
==مصادر==
==مصادر==
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-zip قسم التابع zip في الصنف Array في توثيق روبي الرسمي.]
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-zip قسم التابع zip في الصنف 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: يوزِّع عناصر المصفوفة التي استدعيت معه على جميع عناصر المصفوفات الممرَّرة إليه.

مصادر