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

من موسوعة حسوب
< Ruby‏ | Array
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة وتدقيق.)
 
(4 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <‏‎code>Array.‏‎eql?‎‏‎‎‏‎</code> في روبي}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: التابع <code>Array.eql?</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
+
يتحقق التابع <code>eql?‎</code> من أن مصفوفتين تتضمنان نفس العناصر، وذلك بحسب التابع <code>Object.eql?‎.</code>
[[تصنيف: 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]]
* التابع [[Ruby/Array/uniq! | <code>uniq!‎</code>]]: يحذف‎ العناصر المتكررة من مصفوفة.
+
[[تصنيف: Ruby Method]]
* التابع [[Ruby/Array/compact! | <code>compact!‎</code>]]: يحذف كل العناصر التي تساوي <code>nil</code> من المصفوفة التي استدعيت معه ثم يعيدها.
+
[[تصنيف: Ruby Array]]
* التابع [[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 في توثيق روبي الرسمي.]
 

المراجعة الحالية بتاريخ 07:13، 2 أكتوبر 2018

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

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

 eql?(other)  true or false

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

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

انظر أيضًا

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

مصادر