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

من موسوعة حسوب
< Ruby‏ | Object
طلا ملخص تعديل
طلا ملخص تعديل
 
سطر 1: سطر 1:
{{DISPLAYTITLE:التابع ?Object.eql في روبي}}
{{DISPLAYTITLE:التابع <code>?Object.eql</code> في روبي}}
 
يتحقَّق التابع <code>?eql</code> من استخدام كلا الكائنين نفس مفتاح التجزئة (hash key). يُستَخدم هذا المعامل من قِبَل الصنف <code>[[Ruby/Hash|Hash]]</code> للتحقق من تساوي العناصر. بالنسبة لكائنات الصنف <code>[[Ruby/Object|Object]]</code>، فإنَّ التابع <code>?eql</code> هو مرادفٌ للمعامل <code>[[Ruby/Object/3D-3D|==]]</code>. تتجاوز الأصناف الفرعية عادةً هذا الاصطلاح عبر تعيين التابع <code>?eql</code> اسمًا بديلًا لمُعاملها <code>[[Ruby/Object/3D-3D|==]]</code> المستبدل، لكن هناك استثناءاتٌ دومًا. الأنواع الرقمية مثلًاتجري تحويلًا للنوع عبر المعامل <code>[[Ruby/Object/3D-3D|==]]</code> وليس عبر التابع <code>?eql</code>. اطلع على المثال التالي الذي يوضح ما سبق:<syntaxhighlight lang="ruby">
يتحقَّق التابع <code>?eql</code> من استخدام كلا الكائنين نفس مفتاح التجزئة (hash key). يُستَخدم هذا المعامل من قِبَل الصنف <code>[[Ruby/Hash|Hash]]</code> للتحقق من تساوي العناصر. بالنسبة لكائنات الصنف <code>[[Ruby/Object|Object]]</code>، فإنَّ التابع <code>?eql</code> هو مرادفٌ للمعامل <code>[[Ruby/Object/3D-3D|==]]</code>. تتجاوز الأصناف الفرعية عادةً هذا الاصطلاح عبر تعيين التابع <code>?eql</code> اسمًا بديلًا لمُعاملها <code>[[Ruby/Object/3D-3D|==]]</code> المستبدل، لكن هناك استثناءاتٌ دومًا. الأنواع الرقمية مثلًاتجري تحويلًا للنوع عبر المعامل <code>[[Ruby/Object/3D-3D|==]]</code> وليس عبر التابع <code>?eql</code>. اطلع على المثال التالي الذي يوضح ما سبق:<syntaxhighlight lang="ruby">
1 == 1.0    #=> true
1 == 1.0    #=> true
سطر 21: سطر 20:


== انظر أيضًا ==
== انظر أيضًا ==
* التابع <code>?nil</code>: يتحقَّق فيما إذا كان الكائن المعطى هو nil أم لا.
* التابع <code>[[Ruby/Object/nil-3F|?nil]]</code>: يتحقَّق فيما إذا كان الكائن المعطى هو nil أم لا.
* التابع <code>?instance_of</code>: يتحقَّق إذا كان الكائن الذي استدعي معه نسخةً من الصِّنف المُمرَّر إليه.
* التابع <code>[[Ruby/Object/instance of-3F|?instance_of]]</code>: يتحقَّق إذا كان الكائن الذي استدعي معه نسخةً من الصِّنف المُمرَّر إليه.
* التابع <code>?instance_variable_defined</code>: يتحقَّق إذا كان متغيِّر النسخة المُمرَّر إليه مُعرَّفًا في الكائن المعطى.
* التابع <code>[[Ruby/Object/instance variable defined-3F|?instance_variable_defined]]</code>: يتحقَّق إذا كان متغيِّر النسخة المُمرَّر إليه مُعرَّفًا في الكائن المعطى.
* التابع <code>?is_a</code>: يتحقَّق إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن الذي استدعي معه، أو إن كان هذا الصنف أحد الأصناف العليا للكائن المعطى أو الوحدات المُضمَّنة في هذا الكائن.
* التابع <code>[[Ruby/Object/is a-3F|?is_a]]</code>: يتحقَّق إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن الذي استدعي معه، أو إن كان هذا الصنف أحد الأصناف العليا للكائن المعطى أو الوحدات المُضمَّنة في هذا الكائن.
* التابع <code>?kind_of</code>: يتحقَّق إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن المعطى، أو أنه واحدٌ من الأصناف العليا لذلك الكائن أو الوحدات المُضمَّنة فيه.
* التابع <code>[[Ruby/Object/kind of-3F|?kind_of]]</code>: يتحقَّق إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن المعطى، أو أنه واحدٌ من الأصناف العليا لذلك الكائن أو الوحدات المُضمَّنة فيه.
* التابع <code>?respond_to</code>: يتحقَّق من استجابة الكائن الذي استدعي معه للتابع المُمرَّر إليه.
* التابع <code>[[Ruby/Object/respond to-3F|?respond_to]]</code>: يتحقَّق من استجابة الكائن الذي استدعي معه للتابع المُمرَّر إليه.
* التابع <code>?respond_to_missing</code>: يتحقَّق فيما إذا كان الكائن المعطى يستجيب إلى تابعٍ محدِّدٍ أم لا.
* التابع <code>[[Ruby/Object/respond to missing-3F|?respond_to_missing]]</code>: يتحقَّق فيما إذا كان الكائن المعطى يستجيب إلى تابعٍ محدِّدٍ أم لا.


== مصادر ==
== مصادر ==

المراجعة الحالية بتاريخ 17:57، 24 نوفمبر 2018

يتحقَّق التابع ?eql من استخدام كلا الكائنين نفس مفتاح التجزئة (hash key). يُستَخدم هذا المعامل من قِبَل الصنف Hash للتحقق من تساوي العناصر. بالنسبة لكائنات الصنف Object، فإنَّ التابع ?eql هو مرادفٌ للمعامل ==. تتجاوز الأصناف الفرعية عادةً هذا الاصطلاح عبر تعيين التابع ?eql اسمًا بديلًا لمُعاملها == المستبدل، لكن هناك استثناءاتٌ دومًا. الأنواع الرقمية مثلًاتجري تحويلًا للنوع عبر المعامل == وليس عبر التابع ?eql. اطلع على المثال التالي الذي يوضح ما سبق:

1 == 1.0     #=> true
1.eql? 1.0   #=> false

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

eql?(other)  true or false

المعاملات

other

الكائن الآخر الذي سيُتحقَق من استخدامه نفس مفتاح التجزئة للكائن الأصل.

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

تُعاد القيمة true إذا كان الكائنان يستخدمان نفس مفتاح التجزئة، أو القيمة false خلاف ذلك.

انظر أيضًا

  • التابع ?nil: يتحقَّق فيما إذا كان الكائن المعطى هو nil أم لا.
  • التابع ?instance_of: يتحقَّق إذا كان الكائن الذي استدعي معه نسخةً من الصِّنف المُمرَّر إليه.
  • التابع ?instance_variable_defined: يتحقَّق إذا كان متغيِّر النسخة المُمرَّر إليه مُعرَّفًا في الكائن المعطى.
  • التابع ?is_a: يتحقَّق إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن الذي استدعي معه، أو إن كان هذا الصنف أحد الأصناف العليا للكائن المعطى أو الوحدات المُضمَّنة في هذا الكائن.
  • التابع ?kind_of: يتحقَّق إن كان الصنف المُمرَّر إليه هو نفسه صنف الكائن المعطى، أو أنه واحدٌ من الأصناف العليا لذلك الكائن أو الوحدات المُضمَّنة فيه.
  • التابع ?respond_to: يتحقَّق من استجابة الكائن الذي استدعي معه للتابع المُمرَّر إليه.
  • التابع ?respond_to_missing: يتحقَّق فيما إذا كان الكائن المعطى يستجيب إلى تابعٍ محدِّدٍ أم لا.

مصادر