الفرق بين المراجعتين ل"Ruby/Array/zip"

من موسوعة حسوب
< Ruby‏ | Array
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>Array.zip</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby Array...')
 
ط (مراجعة وتدقيق.)
 
(مراجعتان متوسطتان بواسطة مستخدم واحد آخر غير معروضتين)
سطر 4: سطر 4:
 
[[تصنيف: Ruby Array]]
 
[[تصنيف: Ruby Array]]
 
يحول التابع <code>zip</code> الوسائط الممرَّرة إليه إلى مصفوفات ثم يدمج عناصر المصفوفة التي استُدعيت معه مع العناصر المقابلة في الوسائط (المصفوفات) المُمرَّرة.
 
يحول التابع <code>zip</code> الوسائط الممرَّرة إليه إلى مصفوفات ثم يدمج عناصر المصفوفة التي استُدعيت معه مع العناصر المقابلة في الوسائط (المصفوفات) المُمرَّرة.
يولد هذا التابع عددًا من المصفوفات تحوي كلًّا منها <code>n</code> عنصر، إذ <code>n</code> هو عدد الوسائط الممررة مضافًا إليها 1.
+
 
 +
يولد هذا التابع عددًا من المصفوفات تحوي كلًّا منها <code>n</code> عنصر، إذ <code>n</code> هو عدد الوسائط الممررة مضافًا إليها <code>1</code>.
 +
 
 
إن كان حجم أحد الوسائط أصغر من حجم المصفوفة الأصلية، فسيعوض التابع القيمة <code>nil</code> مكان القيم الناقصة.  
 
إن كان حجم أحد الوسائط أصغر من حجم المصفوفة الأصلية، فسيعوض التابع القيمة <code>nil</code> مكان القيم الناقصة.  
 +
 
في حال تمرير كتلة برمجية كوسيط، ستُستدعى تلك الكتلة مع كل مصفوفة من المصفوفات الناتجة عن عملية الدمج، وإلا فستعاد تلك المصفوفات الناتجة فقط.
 
في حال تمرير كتلة برمجية كوسيط، ستُستدعى تلك الكتلة مع كل مصفوفة من المصفوفات الناتجة عن عملية الدمج، وإلا فستعاد تلك المصفوفات الناتجة فقط.
 
==البنية العامة==
 
==البنية العامة==
<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>
 
==المعاملات==
 
==المعاملات==
<code>arg</code>
+
 
 +
=== <code>arg</code> ===
 
الوسيط المراد تحويله إلى مصفوفة ثم دمج عناصره مع العناصر المقابلة لها في المصفوفة المعطاة.
 
الوسيط المراد تحويله إلى مصفوفة ثم دمج عناصره مع العناصر المقابلة لها في المصفوفة المعطاة.
+
 
 +
=== <code></code> ===
 
الوسائط الأخرى المراد تحويلها إلى مصفوفات ثم دمج عناصرها مع العناصر المقابلة لها في المصفوفة المعطاة.
 
الوسائط الأخرى المراد تحويلها إلى مصفوفات ثم دمج عناصرها مع العناصر المقابلة لها في المصفوفة المعطاة.
 
==القيم المعادة==
 
==القيم المعادة==
تعاد مصفوفة جديدة تحوي مصفوفات ناتجة عن دمج عناصر المصفوفة المعطاة مع العناصر المقابلة لها في الوسيط <code>arg</code> والوسائط الأخرى الممررة.[<code>a</code>][<code>b</code>]
+
تعاد مصفوفة جديدة تحوي مصفوفات ناتجة عن دمج عناصر المصفوفة المعطاة مع العناصر المقابلة لها في الوسيط <code>arg</code> والوسائط الأخرى الممررة.
 
==أمثلة==
 
==أمثلة==
 
أمثلة على استخدام التابع <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]]
سطر 28: سطر 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>]]: يوزِّع عناصر المصفوفة التي استدعيت معه على جميع عناصر المصفوفات الممرَّرة إليه.
 
==مصادر==
 
==مصادر==
* قسم التابع zip في الصنف Array في توثيق روبي الرسمي.
+
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-zip قسم التابع zip في الصنف Array في توثيق روبي الرسمي.]
[a]لم أفهم متى تعاد القيمة nil.
 
+abdallatif.ey@gmail.com
 
_تم التعيين إلى Abd Allatif_
 
[b]سأنظر في أمرها لاحقًا
 

المراجعة الحالية بتاريخ 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: يوزِّع عناصر المصفوفة التي استدعيت معه على جميع عناصر المصفوفات الممرَّرة إليه.

مصادر