الفرق بين المراجعتين لصفحة: «Ruby/Comparable»
جميل-بيلوني (نقاش | مساهمات) مراجعة وتدقيق. |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف:Ruby Mixin]] | [[تصنيف:Ruby Mixin]] | ||
[[تصنيف: Ruby Comparable]] | [[تصنيف: Ruby Comparable]] | ||
يُستخدم المخلوط (mixin) <code>Comparable</code> من قبل الأصناف التي يمكن ترتيب كائناتها. يجب أن يحدِّد الصنفُ المعاملَ <code><=></code> ، الذي يوازن الكائن المستقبِل (receiver) مع كائن | يُستخدم المخلوط (mixin) <code>Comparable</code> من قبل الأصناف التي يمكن ترتيب كائناتها. يجب أن يحدِّد الصنفُ المعاملَ <code><=></code>، الذي يوازن الكائن المستقبِل (receiver) مع كائن آخر، ويعيد -1، أو 0، أو +1 إن كان المُستقبِل أصغر من الكائن الآخر، أو يساويه، أو أكبر منه على التوالي. إذا كان الكائن الآخر غير قابل للموازنة، فعندئذ سيعيد المعامل <code><=></code> القيمة المعدومة <code>nil</code>. | ||
يستخدم <code>Comparable</code> المعامل <code><=></code> لإجراء عمليات | يستخدم <code>Comparable</code> المعامل <code><=></code> لإجراء عمليات الموازنة التقليدية (أي العمليات <code>[[Ruby/Comparable/Greater Than|>]]</code>، و <code>[[Ruby/Comparable/Greater-3D|<=]]</code>، و <code>[[Ruby/Comparable/equal|==]]</code>، و <code>[[Ruby/Comparable/Less-3D|=<]]</code>، و <code>[[Ruby/Comparable/Less than|<]]</code>) والتابع [[Ruby/Comparable/between-3F|<code>between?</code>]]. | ||
==توابع الكائن العامة (Public Instance Methods)== | ==توابع الكائن العامة (Public Instance Methods)== | ||
===المعامل <code rel="mw:WikiLink" | ===المعامل <code rel="mw:WikiLink" title="Ruby/Comparable/Greater-3D" href="Ruby/Comparable/Greater-3D">[[Ruby/Comparable/Greater-3D|=>]]</code>=== | ||
يوازن بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver)، إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة <code>-1</code> أو <code>0</code>، وإلا فسيعيد القيمة <code>false</code>. | يوازن بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver)، إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة <code>-1</code> أو <code>0</code>، وإلا فسيعيد القيمة <code>false</code>. | ||
===المعامل <code rel="mw:WikiLink" | ===المعامل <code rel="mw:WikiLink" title="Ruby/Comparable/equal" href="Ruby/Comparable/equal">[[Ruby/Comparable/equal|==]]</code>=== | ||
يوازن بين كائنين ثمَّ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة <code>0</code> أي كان الكائنان متساويين؛ خلا ذلك، سيعيد القيمة <code>false</code>. | يوازن بين كائنين ثمَّ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة <code>0</code> أي كان الكائنان متساويين؛ خلا ذلك، سيعيد القيمة <code>false</code>. | ||
===المعامل <code rel="mw:WikiLink" | ===المعامل <code rel="mw:WikiLink" title="Ruby/Comparable/Greater Than" href="Ruby/Comparable/Greater Than">[[Ruby/Comparable/Greater Than|>]]</code>=== | ||
يوازن بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver)، إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة <code>-1</code>، وإلا فسيعيد القيمة <code>false</code>. | يوازن بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver)، إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة <code>-1</code>، وإلا فسيعيد القيمة <code>false</code>. | ||
===المعامل <code rel="mw:WikiLink" | ===المعامل <code rel="mw:WikiLink" title="Ruby/Comparable/Less-3D" href="./Ruby/Comparable/Less-3D">[[Ruby/Comparable/Less-3D|>=]]</code>=== | ||
يوازن بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver)، إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة <code>1</code> أو <code>0</code>، وإلا فسيعيد القيمة <code>false</code>. | يوازن بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver)، إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة <code>1</code> أو <code>0</code>، وإلا فسيعيد القيمة <code>false</code>. | ||
===المعامل <code rel="mw:WikiLink" | ===المعامل <code rel="mw:WikiLink" title="Ruby/Comparable/Less than" href="Ruby/Comparable/Less than">[[Ruby/Comparable/Less than|<]]</code>=== | ||
يوازن بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver)، إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة <code>1</code>، وإلا فسيعيد القيمة <code>false</code>. | يوازن بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver)، إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة <code>1</code>، وإلا فسيعيد القيمة <code>false</code>. | ||
===التابع [[Ruby/Comparable/clamp|<code>clamp</code>]]=== | ===التابع [[Ruby/Comparable/clamp|<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> الذي استدعي معه. | يعيد التابع الوسيط المُعطى <code>min</code> (أنظر فقرة البنية العامة) إن كان عائد <code>obj <=> min</code> أقل من <code>0</code>، أو يعيد <code>max</code> (أنظر فقرة البنية العامة) إن كان عائد <code>obj <=> max</code> أكبر من <code>0</code>، خلا ذلك سيعيد الكائنَ <code>obj </code> الذي استدعي معه. | ||
===التابع <code rel="mw:WikiLink" | ===التابع <code rel="mw:WikiLink" title="Ruby/Comparable/between-3F" href="./Ruby/Comparable/between-3F">[[Ruby/Comparable/between-3F|between?]]</code>=== | ||
يتحقق مما إذا كان الكائن الذي استُدعي معه محصورًا بين الكائنين المٌمرّرين إليه. | يتحقق مما إذا كان الكائن الذي استُدعي معه محصورًا بين الكائنين المٌمرّرين إليه. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Comparable.html#method-i-between-3F قسم المخلوط Comparable في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Comparable.html#method-i-between-3F قسم المخلوط Comparable في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 12:26، 21 نوفمبر 2018
يُستخدم المخلوط (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?
يتحقق مما إذا كان الكائن الذي استُدعي معه محصورًا بين الكائنين المٌمرّرين إليه.