الفرق بين المراجعتين لصفحة: «Ruby/Module/3D-3D»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>==</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف:...' |
لا ملخص تعديل |
||
| سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Module]] | [[تصنيف: Ruby Module]] | ||
معامل التساوي - | معامل التساوي - على مستوى الصنف <code>[[Ruby/Object|Object]]</code> ، يعيد المعامل <code>==</code> القيمة <code>true</code> فقط إن كان <code>obj</code> و <code>other</code> (انظر فقرة البنية العامة) نفس الكائن. بشكل عام، يٌعاد تعريف هذا التابع في الأصناف المنحدرة (descendant classes) لتخصيصه للصنف المُستخدم. | ||
يعيد التابع <code>eql?</code> القيمة <code>true</code> إن كان للكائنين | بخلاف <code>==</code> ، لا يجب أبداً إعادة تعريف التابع <code>equal?</code> في الأصناف الفرعية (subclasses)، لأنه يُستخدم لتحديد هوية الكائن (أي أنّ <code>a.equal?(b)</code> تعيد <code>true</code> إذا وفقط إذا كان <code>a</code> هو نفسه الكائن <code>b</code>). | ||
يعيد التابع <code>eql?</code> القيمة <code>true</code> إن كان للكائنين <code>obj</code> و <code>other</code> نفس مفتاح التكويد (hash key). ويُستخدم من قبل <code>Hash</code> لاختبار التساوي بين الأعضاء. بالنسبة للكائنات من الصنف <code>[[Ruby/Object|Object]]</code>، فإنّ <code>eql?</code> مرادف لـ <code>==</code>. | |||
عادة ما تسير الأصناف الفرعية على هذا النهج عبر جعل <code>eql?</code> اسما مرادفًا للمعامل <code>==</code> المٌعاد تعريفه ، ولكن هناك استثناءات. الأنواع العددية (<code>Numeric)</code>، على سبيل المثال ، تجري عمليات تحويل الأنواع عند استخدام <code>==</code>، ولكن ليس عند استخدام <code>eql?</code>، | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">obj == other → true or false | <syntaxhighlight lang="ruby">obj == other → true or false | ||
| سطر 12: | سطر 15: | ||
eql?(other) → true or false</syntaxhighlight> | eql?(other) → true or false</syntaxhighlight> | ||
==المعاملات== | ==المعاملات== | ||
===<code>obj</code>=== | |||
الطرف الأول للمقارنة. | |||
===<code>other</code>=== | ===<code>other</code>=== | ||
الطرف الثاني للمقارنة. | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
يعيد المعامل <code>==</code> القيمة <code>true</code> فقط إن كان <code>obj</code> و <code>other</code>نفس الكائن. بشكل عام، وإلا فسيعيد <code>false</code>. | |||
==أمثلة== | ==أمثلة== | ||
مثال على استخدام التابع <code>==</code>: | مثال على استخدام التابع <code>==</code>:<syntaxhighlight lang="ruby">obj = "a" | ||
<syntaxhighlight lang="ruby">obj = "a" | |||
other = obj.dup | other = obj.dup | ||
obj == other #=> true | obj == other #=> true | ||
obj.equal? other #=> false | obj.equal? other #=> false | ||
obj.equal? obj #=> true</syntaxhighlight> | obj.equal? obj #=> true | ||
1 == 1.0 #=> true | |||
1.eql? 1.0 #=> false</syntaxhighlight> | |||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Module/ | *التابع <code>[[Ruby/Module/3D-3D-3D|===]]</code>: يعيد القيمة <code>true</code> إن كان الوسيط <code>obj</code> نسخة (instance ) من الوسيط <code>mod</code> أو من أحد الأصناف المنحدرة منه. | ||
* التابع <code>[[Ruby/Module/ | |||
* التابع <code>[[Ruby/Module/3C|<]]</code>: يعد القيمة <code>true</code> إن كان الوسيط <code>mod</code> صنفًا فرعيا من <code>other</code>. أو يعيد<code>nil</code> إن لم تكن بينهما أي علاقة. | |||
*التابع <code>[[Ruby/Module/3C-3D-3E|<=>]]</code>: يجري عملية المقارنة. | |||
*التابع <code>[[Ruby/Module/3D-3D|==]]</code>: معامل التساوي | |||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-3D-3D قسم التابع == في الصنف Module في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Module.html#method-i-3D-3D قسم التابع == في الصنف Module في توثيق روبي الرسمي.] | ||
مراجعة 20:13، 26 أكتوبر 2018
معامل التساوي - على مستوى الصنف Object ، يعيد المعامل == القيمة true فقط إن كان obj و other (انظر فقرة البنية العامة) نفس الكائن. بشكل عام، يٌعاد تعريف هذا التابع في الأصناف المنحدرة (descendant classes) لتخصيصه للصنف المُستخدم.
بخلاف == ، لا يجب أبداً إعادة تعريف التابع equal? في الأصناف الفرعية (subclasses)، لأنه يُستخدم لتحديد هوية الكائن (أي أنّ a.equal?(b) تعيد true إذا وفقط إذا كان a هو نفسه الكائن b).
يعيد التابع eql? القيمة true إن كان للكائنين obj و other نفس مفتاح التكويد (hash key). ويُستخدم من قبل Hash لاختبار التساوي بين الأعضاء. بالنسبة للكائنات من الصنف Object، فإنّ eql? مرادف لـ ==.
عادة ما تسير الأصناف الفرعية على هذا النهج عبر جعل eql? اسما مرادفًا للمعامل == المٌعاد تعريفه ، ولكن هناك استثناءات. الأنواع العددية (Numeric)، على سبيل المثال ، تجري عمليات تحويل الأنواع عند استخدام ==، ولكن ليس عند استخدام eql?،
البنية العامة
obj == other → true or false
equal?(other)→ true or false
eql?(other) → true or false
المعاملات
obj
الطرف الأول للمقارنة.
other
الطرف الثاني للمقارنة.
القيمة المُعادة
يعيد المعامل == القيمة true فقط إن كان obj و otherنفس الكائن. بشكل عام، وإلا فسيعيد false.
أمثلة
مثال على استخدام التابع ==:
obj = "a"
other = obj.dup
obj == other #=> true
obj.equal? other #=> false
obj.equal? obj #=> true
1 == 1.0 #=> true
1.eql? 1.0 #=> false
انظر أيضا
- التابع
===: يعيد القيمةtrueإن كان الوسيطobjنسخة (instance ) من الوسيطmodأو من أحد الأصناف المنحدرة منه.
- التابع
<: يعد القيمةtrueإن كان الوسيطmodصنفًا فرعيا منother. أو يعيدnilإن لم تكن بينهما أي علاقة.
- التابع
<=>: يجري عملية المقارنة.
- التابع
==: معامل التساوي