المخلوط Comparable في روبي

من موسوعة حسوب

يُستخدم المخلوط (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?‎مما إذا كان الكائن الذي استُدعي معه محصورا بين الكائنين المٌمرّرين إليه.

مصادر