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