الفرق بين المراجعتين لصفحة: «Ruby/Array/uniq!»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>Array.uniq!</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby Ar...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Array]] | [[تصنيف: Ruby Array]] | ||
يحذف التابع <code>uniq!</code> | يحذف التابع <code>uniq!</code> العناصر المتكررة من مصفوفة. | ||
إن مرِّرت كتلة برمجية، فستُستخدَم القيمة التي تعيدها هذه الكتلة لكل عنصر في عملية الموازنة. | إن مرِّرت كتلة برمجية، فستُستخدَم القيمة التي تعيدها هذه الكتلة لكل عنصر في عملية الموازنة. | ||
يوازن التابع [[Ruby/Array/ | |||
يوازن التابع <code>uniq!</code> القيم باستخدام التابع [[Ruby/Array/hash | <code>hash</code>]] والتابع [[Ruby/Array/eql|<code>eql?</code>]]<code></code> لأجل تحسين الأداء. كما يقتطع التابع العناصر المتكررة من مصفوفة بالترتيب، إذ يحتفظ بالظهور الأول للقيمة المتكررة ويحذف القيمة الأخرى المتماثلة. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby"> uniq! → ary or nil | <syntaxhighlight lang="ruby"> uniq! → ary or nil | ||
سطر 13: | سطر 15: | ||
تعاد المصفوفة نفسها المعطاة بعد إزالة العناصر المتكررة منها، أو تعاد القيمة <code>nil</code> إن لم يجرى أي تعديل على المصفوفة (أي إن لم يكن هنالك أي عناصر متكررة). | تعاد المصفوفة نفسها المعطاة بعد إزالة العناصر المتكررة منها، أو تعاد القيمة <code>nil</code> إن لم يجرى أي تعديل على المصفوفة (أي إن لم يكن هنالك أي عناصر متكررة). | ||
==أمثلة== | ==أمثلة== | ||
أمثلة على استخدام التابع <code>uniq!</code> | أمثلة على استخدام التابع <code>uniq!</code>: | ||
<syntaxhighlight lang="ruby"> a = [ "a", "a", "b", "b", "c" ] | <syntaxhighlight lang="ruby"> a = [ "a", "a", "b", "b", "c" ] | ||
a.uniq! # => ["a", "b", "c"] | a.uniq! # => ["a", "b", "c"] | ||
سطر 25: | سطر 27: | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* التابع [[Ruby/Array/uniq | <code>uniq</code>]]: يحذف العناصر المتكررة من مصفوفة ثم يضع العناصر المتبقية في مصفوفة جديدة. | * التابع [[Ruby/Array/uniq | <code>uniq</code>]]: يحذف العناصر المتكررة من مصفوفة ثم يضع العناصر المتبقية في مصفوفة جديدة. | ||
* التابع [[Ruby/Array/compact! | <code>compact!</code>]] | * التابع [[Ruby/Array/compact! | <code>compact!</code>]]: يحذف كل العناصر التي تساوي <code>nil</code> من المصفوفة التي استدعيت معه ثم يعيدها. | ||
* التابع [[Ruby/Array/delete_if | <code>delete_if</code>]]: يحذف جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة عند تطبيقها على كل عنصر منها القيمة <code>true</code>. | * التابع [[Ruby/Array/delete_if | <code>delete_if</code>]]: يحذف جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة عند تطبيقها على كل عنصر منها القيمة <code>true</code>. | ||
* التابع [[Ruby/Array/reject! | <code>reject!</code>]] | * التابع [[Ruby/Array/reject! | <code>reject!</code>]]: يحذف كل عنصر من عناصر المصفوفة والتي تُقيّم في الكتلة البرمجية المحددة بالقيمة <code>true</code>. إن لم يحدث أي تغيير فستعيد <code>nil</code>. | ||
==مصادر== | ==مصادر== | ||
* قسم التابع uniq! في الصنف Array في توثيق روبي الرسمي. | * [https://ruby-doc.org/core-2.5.1/Array.html#method-i-uniq-21 قسم التابع uniq! في الصنف Array في توثيق روبي الرسمي.] |
مراجعة 09:05، 9 سبتمبر 2018
يحذف التابع uniq!
العناصر المتكررة من مصفوفة.
إن مرِّرت كتلة برمجية، فستُستخدَم القيمة التي تعيدها هذه الكتلة لكل عنصر في عملية الموازنة.
يوازن التابع uniq!
القيم باستخدام التابع hash
والتابع eql?
لأجل تحسين الأداء. كما يقتطع التابع العناصر المتكررة من مصفوفة بالترتيب، إذ يحتفظ بالظهور الأول للقيمة المتكررة ويحذف القيمة الأخرى المتماثلة.
البنية العامة
uniq! → ary or nil
uniq! { |item| ... } → ary or nil
القيم المعادة
تعاد المصفوفة نفسها المعطاة بعد إزالة العناصر المتكررة منها، أو تعاد القيمة nil
إن لم يجرى أي تعديل على المصفوفة (أي إن لم يكن هنالك أي عناصر متكررة).
أمثلة
أمثلة على استخدام التابع uniq!
:
a = [ "a", "a", "b", "b", "c" ]
a.uniq! # => ["a", "b", "c"]
b = [ "a", "b", "c" ]
b.uniq! # => nil
c = [["student","sam"], ["student","george"], ["teacher","matz"]]
c.uniq! { |s| s.first } # => [["student", "sam"], ["teacher", "matz"]]
انظر أيضًا
- التابع
uniq
: يحذف العناصر المتكررة من مصفوفة ثم يضع العناصر المتبقية في مصفوفة جديدة. - التابع
compact!
: يحذف كل العناصر التي تساويnil
من المصفوفة التي استدعيت معه ثم يعيدها. - التابع
delete_if
: يحذف جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة عند تطبيقها على كل عنصر منها القيمةtrue
. - التابع
reject!
: يحذف كل عنصر من عناصر المصفوفة والتي تُقيّم في الكتلة البرمجية المحددة بالقيمةtrue
. إن لم يحدث أي تغيير فستعيدnil
.