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

من موسوعة حسوب
< Ruby‏ | Array
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>Array.flatten!‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby...'
 
لا ملخص تعديل
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Array]]
[[تصنيف: Ruby Array]]
يشبه التابع <code>flatten!</code>!‎ التابع [[Ruby/Array/flatten | <code>flatten</code>]] في جميع النواحي باستثناء أنه لا يضع الناتج في مصفوفة جديدة وإنما يعدِّل على المصفوفة الأصلية نفسها.  
يشبه التابع <code>flatten!</code> التابع [[Ruby/Array/flatten | <code>flatten</code>]] في جميع النواحي باستثناء أنه لا يضع الناتج في مصفوفة جديدة وإنما يعدِّل على المصفوفة الأصلية نفسها.  
يقبل هذا التابع تمرير المعامل <code>level</code> الاختياري الذي يحدد مستوى التعاودية (<code>recursion</code> <code>level</code>).
 
يقبل هذا التابع تمرير المعامل <code>level</code> الاختياري الذي يحدد مستوى التعاودية (recursion level).
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby"> flatten! → ary or nil
<syntaxhighlight lang="ruby"> flatten! → ary or nil
سطر 10: سطر 11:
  </syntaxhighlight>
  </syntaxhighlight>
==المعاملات==
==المعاملات==
<code>level</code>
 
=== <code>level</code> ===
عدد صحيح يحدد مستوى التشعُّب التي يراد استخلاص العناصر الواقعة فيه وجعلها أحادية.
عدد صحيح يحدد مستوى التشعُّب التي يراد استخلاص العناصر الواقعة فيه وجعلها أحادية.
==القيم المعادة==
==القيم المعادة==
تعاد المصفوفة نفسه المعطاة بعد تحويلها إلى مصفوفة أحادية البعد أي بعد استخراج العناصر المتشعبة منها مهما كان مستوى تشعبها أو بحسب مستوى التشعب <code>level</code> (إن أعطي)، أو تعاد القيمة <code>nil</code> في حال لم يُجرَى أي تغيير على المصفوفة.
تعاد المصفوفة نفسه المعطاة بعد تحويلها إلى مصفوفة أحادية البعد أي بعد استخراج العناصر المتشعبة منها مهما كان مستوى تشعبها أو بحسب مستوى التشعب <code>level</code> (إن أعطي)، أو تعاد القيمة <code>nil</code> في حال لم يُجرَى أي تغيير على المصفوفة.
==أمثلة==
==أمثلة==
أمثلة على استخدام التابع <code>flatten!</code>!‎:
أمثلة على استخدام التابع <code>flatten!</code>:
<syntaxhighlight lang="ruby"> a = [ 1, 2, [3, [4, 5] ] ]
<syntaxhighlight lang="ruby"> a = [ 1, 2, [3, [4, 5] ] ]
a.flatten!  #=> [1, 2, 3, 4, 5]
a.flatten!  #=> [1, 2, 3, 4, 5]
سطر 24: سطر 26:
  </syntaxhighlight>
  </syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
* التابع [[Ruby/Array/flatten | <code>flatten</code>]]: يجعل المصفوفة التي تحوي عناصر متشعبة ضمنها مصفوفةً أحادية البعد بشكل تعاودي (<code>recursively</code>)؛ أي أنَّ كل عنصر من عناصر المصفوفة المعطاة والذي قد يكون نفسه مصفوفةً متشعبةً من مستوًى واحدٍ أو أكثر ستُستخلَص عناصره وتضاف إلى مصفوفة جديدة.
* التابع [[Ruby/Array/flatten | <code>flatten</code>]]: يجعل المصفوفة التي تحوي عناصر متشعبة ضمنها مصفوفةً أحادية البعد بشكل تعاودي (recursively)؛ أي أنَّ كل عنصر من عناصر المصفوفة المعطاة والذي قد يكون نفسه مصفوفةً متشعبةً من مستوًى واحدٍ أو أكثر ستُستخلَص عناصره وتضاف إلى مصفوفة جديدة.
* التابع [[Ruby/Array/dig | <code>dig</code>]]: يستخرج العنصر المتشعِّب (<code>nested</code> <code>value</code>) المحدَّد بسلسلة الوسائط <code>idx</code> الممرَّرة إليه وذلك عبر استدعاء ()[[Ruby/Array/dig | <code>dig</code>]] عند كل مستوى تشعب.
* التابع [[Ruby/Array/dig | <code>dig</code>]]: يستخرج العنصر المتشعِّب (<code>nested</code> <code>value</code>) المحدَّد بسلسلة الوسائط <code>idx</code> الممرَّرة إليه وذلك عبر استدعاء ()[[Ruby/Array/dig | <code>dig</code>]] عند كل مستوى تشعب.
==مصادر==
==مصادر==
* قسم التابع flatten!‎ في الصنف Array في توثيق روبي الرسمي.
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-flatten-21 قسم التابع flatten!‎ في الصنف Array في توثيق روبي الرسمي.]

مراجعة 17:24، 6 سبتمبر 2018

يشبه التابع flatten!‎ التابع flatten في جميع النواحي باستثناء أنه لا يضع الناتج في مصفوفة جديدة وإنما يعدِّل على المصفوفة الأصلية نفسها.

يقبل هذا التابع تمرير المعامل level الاختياري الذي يحدد مستوى التعاودية (recursion level).

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

 flatten!  ary or nil
flatten!(level)  ary or nil

المعاملات

level

عدد صحيح يحدد مستوى التشعُّب التي يراد استخلاص العناصر الواقعة فيه وجعلها أحادية.

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

تعاد المصفوفة نفسه المعطاة بعد تحويلها إلى مصفوفة أحادية البعد أي بعد استخراج العناصر المتشعبة منها مهما كان مستوى تشعبها أو بحسب مستوى التشعب level (إن أعطي)، أو تعاد القيمة nil في حال لم يُجرَى أي تغيير على المصفوفة.

أمثلة

أمثلة على استخدام التابع flatten!‎:

 a = [ 1, 2, [3, [4, 5] ] ]
a.flatten!   #=> [1, 2, 3, 4, 5]
a.flatten!   #=> nil
a            #=> [1, 2, 3, 4, 5]
a = [ 1, 2, [3, [4, 5] ] ]
a.flatten!(1) #=> [1, 2, 3, [4, 5]]

انظر أيضًا

  • التابع flatten: يجعل المصفوفة التي تحوي عناصر متشعبة ضمنها مصفوفةً أحادية البعد بشكل تعاودي (recursively)؛ أي أنَّ كل عنصر من عناصر المصفوفة المعطاة والذي قد يكون نفسه مصفوفةً متشعبةً من مستوًى واحدٍ أو أكثر ستُستخلَص عناصره وتضاف إلى مصفوفة جديدة.
  • التابع dig: يستخرج العنصر المتشعِّب (nested value) المحدَّد بسلسلة الوسائط idx الممرَّرة إليه وذلك عبر استدعاء () dig عند كل مستوى تشعب.

مصادر