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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
سطر 21: سطر 21:
 
===[[Ruby/Comparable/Less than|المعامل <]] ===
 
===[[Ruby/Comparable/Less than|المعامل <]] ===
 
يقارن المعامل <code><</code> بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة ‎<code>1</code>‎ ، وإلا فسيعيد <code>false</code>.
 
يقارن المعامل <code><</code> بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة ‎<code>1</code>‎ ، وإلا فسيعيد <code>false</code>.
 +
 +
=== [[Ruby/Comparable/clamp|التابع ‎<code>clamp</code>‎]] ===
 +
يعيد التابع ‎<code>clamp</code>‎الوسيط المُعطى <code>min</code> (أنظر فقرة البنية العامة) إن كان عائد <code>''obj'' <=> ''min''</code> ''أقل من <code>0</code>، أو يعيد <code>max</code> (أنظر فقرة البنية العامة) إن كان عائد <code>obj <=> max</code> أكبر  من <code>0</code>، خلا ذلك سيعيد الكائنَ <code>obj </code> الذي استدعي معه.''
 +
 +
===[[Ruby/Comparable/between-3F|التابع<code>‎between?‎</code>]] ===
 +
يتحقق التابع ‎<code>between?</code>‎مما إذا كان الكائن الذي استُدعي معه محصورا بين الكائنين المٌمرّرين إليه.
  
 
== مصادر ==
 
== مصادر ==
* [http://ruby-doc.org/core-2.5.1/Comparable.html#method-i-between-3F قسم التابع‎ المخلوط في الصنف Array في توثيق روبي الرسمي.]
+
* [http://ruby-doc.org/core-2.5.1/Comparable.html#method-i-between-3F قسم المخلوط Comparable في توثيق روبي الرسمي.]

مراجعة 12:24، 13 سبتمبر 2018

يُستخدم المخلوط (mixin) ‏Comparable من قبل الأصناف التي يمكن ترتيب كائناتها. يجب أن يحدد الصنفُ المعاملَ <=> ، الذي يقارن الكائن المستقبِل (receiver ) مع كائن آخر ، ويعيد ‎-1، أو 0 ، أو ‎+1 إن كان المُستقبِل أصغر من الكائن الآخر، أو يساويه: أو أكبر منه على التوالي.  إذا كان الكائن الآخر غير قابل للمقارنة ، فعندئذ سيعيد المعامل <=> القيمة المعدومة nil.

يستخدم Comparable المعامل <=> لإجراء عمليات المقارنة التقليدية (<، ‎<=‎ ، == ،>=‎ و>) والتابع between?‎.

توابع الكائن العامة (Public Instance Methods)

المعامل => 

 يقارن المعامل ‎‎‎<=‎ بين كائنين بناءً على النتيجة التي يعيدها المعامل <=> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة true إن أعاد المعامل <=> القيمة ‎-1‎ أو 0، وإلا فسيعيد false.

المعامل ==

يعيد المعامل القيمة true إن أعاد المعامل <=> القيمة ‎ 0أو كان الكائنان obj و other متساويين، خلا ذلك سيعيد false.

المعامل >

يقارن المعامل > بين كائنين بناءً على النتيجة التي يعيدها المعامل <=> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة true إن أعاد المعامل <=> القيمة ‎-1‎ ، وإلا فسيعيد false.

المعامل ‎‎‎>=‎

يقارن المعامل < بين كائنين بناءً على النتيجة التي يعيدها المعامل <=> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة true إن أعاد المعامل <=> القيمة ‎1‎ أو 0، وإلا فسيعيد false.

المعامل <

يقارن المعامل < بين كائنين بناءً على النتيجة التي يعيدها المعامل <=> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة true إن أعاد المعامل <=> القيمة ‎1‎ ، وإلا فسيعيد false.

التابع ‎clamp

يعيد التابع ‎clamp‎الوسيط المُعطى min (أنظر فقرة البنية العامة) إن كان عائد obj <=> min أقل من 0، أو يعيد max (أنظر فقرة البنية العامة) إن كان عائد obj <=> max أكبر من 0، خلا ذلك سيعيد الكائنَ obj  الذي استدعي معه.

التابع‎between?‎

يتحقق التابع ‎between?‎مما إذا كان الكائن الذي استُدعي معه محصورا بين الكائنين المٌمرّرين إليه.

مصادر