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

من موسوعة حسوب
< Ruby‏ | Array
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Array]]
[[تصنيف: Ruby Array]]
يرتب التابع <code>sort!‎</code> عناصر المصفوفة التي استُدعيت معه.
يرتب التابع <code>sort!‎</code> عناصر المصفوفة التي استُدعيت معه.


ستجرى عملية الموازنة بين عناصر المصفوفة المراد ترتيبها باستعمال المعامل [[Ruby/Array/Comparison|<=>]] أو باستعمال كتلة برمجية محددة.
ستجرى عملية الموازنة بين عناصر المصفوفة المراد ترتيبها باستعمال المعامل [[Ruby/Array/Comparison|<code><=></code>]] أو باستعمال كتلة برمجية محددة.


إن استعملت الكتلة البرمجية <code>block</code> في ترتيب العناصر، فيجب أن تجري موازنة بين العنصر <code>a</code> والعنصر <code>b</code> وتعيد عددًا سالبًا إن كان <code>b</code> أكبر من <code>a</code>، أو العدد <code>0</code> إن كانا متساويين، أو عددًا موجبًا إن كان <code>b</code> أصغر من <code>a</code>. مع ذلك، لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب العناصر المتساوية مع بعضها التي تعيد عملية الموازنة بينهما القيمة <code>0</code>.
إن استعملت الكتلة البرمجية <code>block</code> في ترتيب العناصر، فيجب أن تجري موازنة بين العنصر <code>a</code> والعنصر <code>b</code> وتعيد عددًا سالبًا إن كان <code>b</code> أكبر من <code>a</code>، أو العدد <code>0</code> إن كانا متساويين، أو عددًا موجبًا إن كان <code>b</code> أصغر من <code>a</code>. مع ذلك، لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب العناصر المتساوية مع بعضها التي تعيد عملية الموازنة بينهما القيمة <code>0</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby"> sort! → aryclick to toggle source
<syntaxhighlight lang="ruby">sort! → aryclick to toggle source
sort! { |a, b| block } → ary
sort! { |a, b| block } → ary


سطر 18: سطر 18:
==أمثلة==
==أمثلة==
أمثلة على استخدام التابع <code>sort!</code>‎:
أمثلة على استخدام التابع <code>sort!</code>‎:
<syntaxhighlight lang="ruby"> ary = [ "d", "a", "e", "c", "b" ]
<syntaxhighlight lang="ruby">ary = [ "d", "a", "e", "c", "b" ]
ary.sort!                    #=> ["a", "b", "c", "d", "e"]
ary.sort!                    #=> ["a", "b", "c", "d", "e"]
ary.sort! { |a, b| b <=> a }  #=> ["e", "d", "c", "b", "a"]
ary.sort! { |a, b| b <=> a }  #=> ["e", "d", "c", "b", "a"]
  </syntaxhighlight>
  </syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
* التابع [[Ruby/Array/sort | <code>sort</code>]]: يرتب عناصر المصفوفة التي استُدعيت معه ويعيدها في مصفوفة جديدة.
* التابع<nowiki/>[[Ruby/Array/sort | <code>sort</code>]]: يرتب عناصر المصفوفة التي استُدعيت معه ويعيدها في مصفوفة جديدة.
* التابع [[Ruby/Array/sort_by! | <code>sort_by!‎</code>]]: يُرتب المصفوفة التي استُدعيت معه وفقًا لمجموعة من المفاتيح (<code>set</code> <code>of</code> <code>keys</code>) المولدة عبر تمرير كل عنصر من عناصر المصفوفة إلى كتلة برمجية مُحددة.
* التابع<nowiki/>[[Ruby/Array/sort_by! | <code>sort_by!‎</code>]]: يُرتب المصفوفة التي استُدعيت معه وفقًا لمجموعة من المفاتيح (set of keys) المولدة عبر تمرير كل عنصر من عناصر المصفوفة إلى كتلة برمجية مُحددة.
* التابع [[Ruby/Array/shuffle! | <code>shuffle</code>!‎]]: يعيد‎ ترتيب عناصر مصفوفة بشكل عشوائي.
* التابع<nowiki/>[[Ruby/Array/shuffle! | <code>shuffle!‎</code>]]: يعيد‎ ترتيب عناصر مصفوفة بشكل عشوائي.
* التابع [[Ruby/Array/rotate | <code>rotate</code>]]: يعيد مصفوفة جديدة تحتوي عناصر المصفوفة التي استُدعيت معها مع إزاحة (تدوير) عناصرها ليكون العنصر ذو الفهرس الممرر إليها هو العنصر الأول في المصفوفة الجديدة.
* التابع<nowiki/>[[Ruby/Array/rotate | <code>rotate</code>]]: يعيد مصفوفة جديدة تحتوي عناصر المصفوفة التي استُدعيت معها مع إزاحة (تدوير) عناصرها ليكون العنصر ذو الفهرس الممرر إليها هو العنصر الأول في المصفوفة الجديدة.
* التابع [[Ruby/Array/reverse! | <code>reverse!‎</code>]]:يعكس‎ ترتيب عناصر المصفوفة التي استُدعيت معه.
* التابع<nowiki/>[[Ruby/Array/reverse! | <code>reverse!‎</code>]]:يعكس‎ ترتيب عناصر المصفوفة التي استُدعيت معه.
==مصادر==
==مصادر==
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-sort-21 قسم التابع sort!‎ في الصنف Array في توثيق روبي الرسمي.]
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-sort-21 قسم التابع sort!‎ في الصنف Array في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 10:06، 3 أكتوبر 2018

يرتب التابع sort!‎ عناصر المصفوفة التي استُدعيت معه.

ستجرى عملية الموازنة بين عناصر المصفوفة المراد ترتيبها باستعمال المعامل <=> أو باستعمال كتلة برمجية محددة.

إن استعملت الكتلة البرمجية block في ترتيب العناصر، فيجب أن تجري موازنة بين العنصر a والعنصر b وتعيد عددًا سالبًا إن كان b أكبر من a، أو العدد 0 إن كانا متساويين، أو عددًا موجبًا إن كان b أصغر من a. مع ذلك، لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب العناصر المتساوية مع بعضها التي تعيد عملية الموازنة بينهما القيمة 0.

البنية العامة

sort!  aryclick to toggle source
sort! { |a, b| block }  ary

القيم المعادة

تعاد المصفوفة نفسها المعطاة بعد ترتيب عناصرها.

أمثلة

أمثلة على استخدام التابع sort!‎:

ary = [ "d", "a", "e", "c", "b" ]
ary.sort!                     #=> ["a", "b", "c", "d", "e"]
ary.sort! { |a, b| b <=> a }  #=> ["e", "d", "c", "b", "a"]

انظر أيضًا

  • التابع sort: يرتب عناصر المصفوفة التي استُدعيت معه ويعيدها في مصفوفة جديدة.
  • التابع sort_by!‎: يُرتب المصفوفة التي استُدعيت معه وفقًا لمجموعة من المفاتيح (set of keys) المولدة عبر تمرير كل عنصر من عناصر المصفوفة إلى كتلة برمجية مُحددة.
  • التابع shuffle!‎: يعيد‎ ترتيب عناصر مصفوفة بشكل عشوائي.
  • التابع rotate: يعيد مصفوفة جديدة تحتوي عناصر المصفوفة التي استُدعيت معها مع إزاحة (تدوير) عناصرها ليكون العنصر ذو الفهرس الممرر إليها هو العنصر الأول في المصفوفة الجديدة.
  • التابع reverse!‎:يعكس‎ ترتيب عناصر المصفوفة التي استُدعيت معه.

مصادر