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

من موسوعة حسوب
< Ruby‏ | Array
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>Array.keep_if</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby Arr...'
 
لا ملخص تعديل
سطر 4: سطر 4:
[[تصنيف: Ruby Array]]
[[تصنيف: Ruby Array]]
يٌبقِي التابع <code>keep_if</code> على جميع عناصر المصفوفة التي تحقق شرطًا معينًا ويحذف العناصر الأخرى المتبقية.
يٌبقِي التابع <code>keep_if</code> على جميع عناصر المصفوفة التي تحقق شرطًا معينًا ويحذف العناصر الأخرى المتبقية.
إن لم تمرَّر كتلة برمجية، فسيعيد التابع <code>keep_if</code> كائنًا من النوع <code>Enumerator</code>.
 
إن لم تمرَّر كتلة برمجية، فسيعيد التابع <code>keep_if</code> كائنًا من النوع <code>[[Ruby/Enumerator|Enumerator]]</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby"> keep_if { |item| block } → ary
<syntaxhighlight lang="ruby"> keep_if { |item| block } → ary
سطر 12: سطر 13:
  </syntaxhighlight>
  </syntaxhighlight>
==القيم المعادة==
==القيم المعادة==
تعاد المصفوفة نفسها المعطاة بعد إزالة جميع العناصر الغير محققة للشرط الذي تحدده الكتلة <code>block</code>، أو يعاد كائن من النوع  إن <code>Enumerator</code> إن لم تعطَ الكتلة <code>block</code>.
تعاد المصفوفة نفسها المعطاة بعد إزالة جميع العناصر الغير محققة للشرط الذي تحدده الكتلة <code>block</code>، أو يعاد كائن من النوع  إن [[Ruby/Enumerator|<code>Enumerator</code>]] إن لم تعطَ الكتلة <code>block</code>.
==أمثلة==
==أمثلة==
مثالٌ على استخدام التابع <code>keep_if</code>:
مثالٌ على استخدام التابع <code>keep_if</code>:
سطر 21: سطر 22:
* التابع [[Ruby/Array/delete_if | <code>delete_if</code>]]:يحذف جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة القيمة <code>true</code> عند تطبيقها على كل عنصر منها.
* التابع [[Ruby/Array/delete_if | <code>delete_if</code>]]:يحذف جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة القيمة <code>true</code> عند تطبيقها على كل عنصر منها.
* التابع [[Ruby/Array/drop_while | <code>drop_while</code>]]: يحذف عناصر المصفوفة الأولى التي تحقِّق شرطًا محدَّدًا ثمَّ يعيد مصفوفة جديدة تحوي بقية العناصر.
* التابع [[Ruby/Array/drop_while | <code>drop_while</code>]]: يحذف عناصر المصفوفة الأولى التي تحقِّق شرطًا محدَّدًا ثمَّ يعيد مصفوفة جديدة تحوي بقية العناصر.
* التابع [[Ruby/Array/reject! | <code>reject!</code>]]!‎: يحذف جميع عناصر المصفوفة التي لم تحقق شرطًا محددًا.
* التابع<nowiki/>[[Ruby/Array/reject! | <code>reject!</code>]]<code></code>: يحذف جميع عناصر المصفوفة التي لم تحقق شرطًا محددًا.
* التابع [[Ruby/Array/slice! | <code>slice!</code>]]!‎: يقتطع‎ عنصرًا ذي فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من المصفوفة التي استدعيت معه.
* التابع [[Ruby/Array/slice! | <code>slice</code>!‎]]: يقتطع‎ عنصرًا ذي فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من المصفوفة التي استدعيت معه.
==مصادر==
==مصادر==
* قسم التابع keep_if في الصنف Array في توثيق روبي الرسمي.
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-keep_if قسم التابع keep_if في الصنف Array في توثيق روبي الرسمي.]

مراجعة 08:54، 7 سبتمبر 2018

يٌبقِي التابع keep_if على جميع عناصر المصفوفة التي تحقق شرطًا معينًا ويحذف العناصر الأخرى المتبقية.

إن لم تمرَّر كتلة برمجية، فسيعيد التابع keep_if كائنًا من النوع Enumerator.

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

 keep_if { |item| block }  ary
keep_if  Enumerator

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

تعاد المصفوفة نفسها المعطاة بعد إزالة جميع العناصر الغير محققة للشرط الذي تحدده الكتلة block، أو يعاد كائن من النوع إن Enumerator إن لم تعطَ الكتلة block.

أمثلة

مثالٌ على استخدام التابع keep_if:

 a = %w{ a b c d e f }
a.keep_if { |v| v =~ /[aeiou]/ }  #=> ["a", "e"]

انظر أيضًا

  • التابع delete_if:يحذف جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة القيمة true عند تطبيقها على كل عنصر منها.
  • التابع drop_while: يحذف عناصر المصفوفة الأولى التي تحقِّق شرطًا محدَّدًا ثمَّ يعيد مصفوفة جديدة تحوي بقية العناصر.
  • التابع reject!: يحذف جميع عناصر المصفوفة التي لم تحقق شرطًا محددًا.
  • التابع slice!‎: يقتطع‎ عنصرًا ذي فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من المصفوفة التي استدعيت معه.

مصادر