الفرق بين المراجعتين لصفحة: «Ruby/Comparable»

من موسوعة حسوب
مراجعة وتدقيق.
طلا ملخص تعديل
 
سطر 3: سطر 3:
[[تصنيف:Ruby Mixin]]
[[تصنيف:Ruby Mixin]]
[[تصنيف: Ruby Comparable]]
[[تصنيف: Ruby Comparable]]
يُستخدم المخلوط (mixin) ‏<code>Comparable</code> من قبل الأصناف التي يمكن ترتيب كائناتها. يجب أن يحدِّد الصنفُ المعاملَ <code><=></code> ، الذي يوازن الكائن المستقبِل (receiver) مع كائن آخر ، ويعيد ‎-1، أو 0، أو ‎+1 إن كان المُستقبِل أصغر من الكائن الآخر، أو يساويه، أو أكبر منه على التوالي. إذا كان الكائن الآخر غير قابل للموازنة، فعندئذ سيعيد المعامل <code><=></code> القيمة المعدومة <code>nil</code>.  
يُستخدم المخلوط (mixin) ‏<code>Comparable</code> من قبل الأصناف التي يمكن ترتيب كائناتها. يجب أن يحدِّد الصنفُ المعاملَ <code><=></code>، الذي يوازن الكائن المستقبِل (receiver) مع كائن آخر، ويعيد ‎-1، أو 0، أو ‎+1 إن كان المُستقبِل أصغر من الكائن الآخر، أو يساويه، أو أكبر منه على التوالي. إذا كان الكائن الآخر غير قابل للموازنة، فعندئذ سيعيد المعامل <code><=></code> القيمة المعدومة <code>nil</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>‎]].
يستخدم <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" href="Ruby/Comparable/Greater-3D" title="Ruby/Comparable/Greater-3D">[[Ruby/Comparable/Greater-3D|=>]]</code>===
===المعامل <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" href="Ruby/Comparable/equal" title="Ruby/Comparable/equal">[[Ruby/Comparable/equal|==]]</code>===
===المعامل <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" href="Ruby/Comparable/Greater Than" title="Ruby/Comparable/Greater Than">[[Ruby/Comparable/Greater Than|>]]</code>===
===المعامل <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" href="./Ruby/Comparable/Less-3D" title="Ruby/Comparable/Less-3D">[[Ruby/Comparable/Less-3D|‎‎‎>=‎]]</code>===
===المعامل <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" href="Ruby/Comparable/Less than" title="Ruby/Comparable/Less than">[[Ruby/Comparable/Less than|<]]</code>===
===المعامل <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" href="./Ruby/Comparable/between-3F" title="Ruby/Comparable/between-3F">‎[[Ruby/Comparable/between-3F|between?‎]]</code>===
===التابع <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?‎

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

مصادر