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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: المخلوط <code>Comparable</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Comparable يعيد التابع...'
 
لا ملخص تعديل
سطر 2: سطر 2:
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Comparable]]
[[تصنيف: Ruby Comparable]]
يعيد التابع ‎<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> الذي استدعي معه.''
يُستخدم المخلوط (mixin) ‏<code>Comparable</code> من قبل الأصناف التي يمكن ترتيب كائناتها. يجب أن يحدد الصنفُ المعاملَ <code><=></code> ، الذي يقارن الكائن المستقبِل (receiver ) مع كائن آخر ، ويعيد ‎<code>-1</code>، أو <code>0</code> ، أو <code>+1</code> إن كان المُستقبِل أصغر من الكائن الآخر، أو يساويه: أو أكبر منه على التوالي.  إذا كان الكائن الآخر غير قابل للمقارنة ، فعندئذ سيعيد المعامل <code><=></code> القيمة المعدومة <code>nil</code>.  


== البنية العامة ==
يستخدم <code>Comparable</code> المعامل <code><=></code> لإجراء عمليات المقارنة التقليدية (<code><</code>، ‎<code><=‎</code> ، <code>==</code> ،<code>>=‎</code> و<code>></code>) والتابع <code>between?</code>‎.
<syntaxhighlight lang="ruby">
clamp(min, max) → obj
</syntaxhighlight>


== المعاملات ==
== توابع الكائن العامة (Public Instance Methods) ==
=== [[Ruby/Comparable/Greater-3D|المعامل =>]]  ===
 يقارن المعامل <code>‎‎‎<=‎</code> بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة ‎<code>-1</code>‎ أو <code>0</code>، وإلا فسيعيد <code>false</code>.


=== <code>''min''</code> ===
=== [[Ruby/Comparable/equal|المعامل ==]] ===
يمثل هذا المعامل القيمة الدنيا.
يعيد المعامل القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة ‎ <code>0</code>أو كان الكائنان ''<code>obj</code>'' و ''<code>other</code>'' متساويين، خلا ذلك سيعيد <code>false</code>.


=== <code>''max''</code>'' '' ===
===[[Ruby/Comparable/Greater Than|المعامل >]] ===
يمثل هذا المعامل القيمة القصوى.
يقارن المعامل <code>></code> بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة ‎<code>-1</code>‎ ، وإلا فسيعيد <code>false</code>.


== القيمة المٌعادة ==
===[[Ruby/Comparable/Less-3D|المعامل <code>‎‎‎>=‎</code>]] ===
يعيد التابع ‎<code>clamp</code>‎الوسيط المُعطى <code>min</code> إن كان عائد <code>''obj'' <=> ''min''</code> ''أقل من <code></code> أو يعيد <code>max</code> إن كان عائد <code>obj <=> max</code> أكبر من <code>0</code>، خلا ذلك سيعيد الكائن <code>obj </code> الذي استدعي معه.''
يقارن المعامل <code><</code> بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة ‎<code>1</code> أو <code>0</code>، وإلا فسيعيد <code>false</code>.


== أمثلة ==
===[[Ruby/Comparable/Less than|المعامل <]] ===
أمثلة عن استخدام التابع <code>clamp</code>‎:<syntaxhighlight lang="ruby">
يقارن المعامل <code><</code> بين كائنين بناءً على النتيجة التي يعيدها المعامل <code><=></code> الخاص بالمُستقبِل (receiver). إذ يعيد القيمة <code>true</code> إن أعاد المعامل <code><=></code> القيمة ‎<code>1</code>‎ ، وإلا فسيعيد <code>false</code>.
12.clamp(0, 100)         #=> 12
523.clamp(0, 100)        #=> 100
-3.123.clamp(0, 100)    #=> 0
 
'd'.clamp('a', 'f')      #=> 'd'
'z'.clamp('a', 'f')      #=> 'f'
</syntaxhighlight>
 
== أنظر أيضًا ==
* التابع [[Ruby/Comparable/between-3F|‎<code>between?</code>]]‎ : يتحقق التابع ‎<code>between?</code>‎مما إذا كان الكائن الذي استُدعي معه محصورا بين الكائنين المٌمرّرين إليه.


== مصادر ==
== مصادر ==
* [http://ruby-doc.org/core-2.5.1/Comparable.html#method-i-between-3F قسم التابع <code>between?</code>‎ في الصنف Array في توثيق روبي الرسمي.]
* [http://ruby-doc.org/core-2.5.1/Comparable.html#method-i-between-3F قسم التابع‎ المخلوط في الصنف Array في توثيق روبي الرسمي.]

مراجعة 12:22، 13 سبتمبر 2018

يُستخدم المخلوط (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.

مصادر