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

من موسوعة حسوب
< Ruby‏ | Array
لا ملخص تعديل
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>Array.eql?‎</code> في روبي}}</noinclude>
يتحقق التابع <code>eql?‎</code> من أن مصفوفتين تتضمنان نفس العناصر، وذلك بحسب التابع <code>Object#eql?‎.</code>
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Array]]
يحذف التابع <code>uniq</code> العناصر المتكررة من مصفوفة ثم يضع العناصر المتبقية في مصفوفة جديدة.


إن مرِّرت كتلة برمجية، فستُستخدَم القيمة التي تعيدها هذه الكتلة لكل عنصر في عملية الموازنة.
يوازن التابع <code>uniq</code> القيم باستخدام التابع [[Ruby/Array/hash | <code>hash</code>]] والتابع [[Ruby/Array/eql|<code>eql?‎</code>]] لأجل تحسين الأداء. كما يقتطع التابع العناصر المتكررة من مصفوفة بالترتيب، إذ يحتفظ بالظهور الأول للقيمة المتكررة ويحذف القيمة الأخرى المتماثلة.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby"> uniq new_ary
<syntaxhighlight lang="ruby"> eql?(other) true or false </syntaxhighlight>
uniq { |item| ... } → new_ary
</syntaxhighlight>
==القيم المعادة==
==القيم المعادة==
تعاد مصفوفة جديدة تحوي جميع عناصر المصفوفة المعطاة بعد إزالة العناصر المتكررة منها.
يعيد القيمة <code>true</code> إن كانت المصفوفتان تتضمنان نفس العناصر ، وإلا فستعيد القيمة <code>false</code>.
==أمثلة==
==انظر أيضًا==
بعض الأمثلة على استخدام التابع <code>uniq</code>:
* المعامل <code>[[Ruby/Array/Comparison|<=>]]</code>: يعيد عددًا صحيحًا (‎<code>-1</code> أو <code>0</code> أو ‎<code>+1</code>) إذا كانت المصفوفة الأصلية أصغر من أو تساوي أو أكبر من المصفوفة الأخرى المعطاة على التوالي
<syntaxhighlight lang="ruby"> a = [ "a", "a", "b", "b", "c" ]
a.uniq  # => ["a", "b", "c"]


b = [["student","sam"], ["student","george"], ["teacher","matz"]]
* المعامل <code>[[Ruby/Array/equal|==]]</code>: يتحقق  من تساوي مصفوفتين مع بعضهما بعضًا. تكون مصفوفتان متساويتين إن حوت كلاهما نفس عدد العناصر، وكان كل عنصر من المصفوفة الأولى مساويًا لنظيره في المصفوفة الثانية.
b.uniq { |s| s.first } # => [["student", "sam"], ["teacher", "matz"]]
==مصادر<span> </span>==
</syntaxhighlight>
*[https://ruby-doc.org/core-2.5.1/Array.html#method-i-eql-3F قسم التابع eql?‎ في الصنف Array في توثيق روبي الرسمي.]
==انظر أيضًا==
* التابع [[Ruby/Array/uniq! | <code>uniq!‎</code>]]: يحذف‎ العناصر المتكررة من مصفوفة.
* التابع [[Ruby/Array/compact! | <code>compact!‎</code>]]: يحذف كل العناصر التي تساوي <code>nil</code> من المصفوفة التي استدعيت معه ثم يعيدها.
* التابع [[Ruby/Array/delete_if | <code>delete_if</code>]]: يحذف جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة عند تطبيقها على كل عنصر منها القيمة <code>true</code>.
* التابع [[Ruby/Array/reject! | <code>reject!‎</code>]]: يحذف كل عنصر من عناصر المصفوفة والتي تُقيّم في الكتلة البرمجية المحددة بالقيمة <code>true</code>. إن لم يحدث أي تغيير فستعيد <code>nil</code>.
==مصادر==
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-uniq قسم التابع uniq في الصنف Array في توثيق روبي الرسمي.]

مراجعة 18:41، 8 سبتمبر 2018

يتحقق التابع eql?‎ من أن مصفوفتين تتضمنان نفس العناصر، وذلك بحسب التابع Object#eql?‎.

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

 eql?(other)  true or false

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

يعيد القيمة true إن كانت المصفوفتان تتضمنان نفس العناصر ، وإلا فستعيد القيمة false.

انظر أيضًا

  • المعامل <=>: يعيد عددًا صحيحًا (‎-1 أو 0 أو ‎+1) إذا كانت المصفوفة الأصلية أصغر من أو تساوي أو أكبر من المصفوفة الأخرى المعطاة على التوالي
  • المعامل ==: يتحقق  من تساوي مصفوفتين مع بعضهما بعضًا. تكون مصفوفتان متساويتين إن حوت كلاهما نفس عدد العناصر، وكان كل عنصر من المصفوفة الأولى مساويًا لنظيره في المصفوفة الثانية.

مصادر