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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

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

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

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

المعامل =>

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

المعامل ==

يوازن بين كائنين ثمَّ يعيد القيمة true إن أعاد المعامل <=> القيمة 0 أي كان الكائنان متساويين؛ خلا ذلك، سيعيد القيمة false.

المعامل >

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

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

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

المعامل <

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

التابع clamp

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

التابع ‎between?‎

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

مصادر