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