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

من موسوعة حسوب
< Ruby‏ | Array
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>Array.sort</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method [[تصنيف: Ruby Array]...'
 
ط مراجعة وتدقيق.
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 4: سطر 4:
[[تصنيف: Ruby Array]]
[[تصنيف: Ruby Array]]
يرتب التابع <code>sort</code> عناصر المصفوفة التي استُدعيت معه ويعيدها في مصفوفة جديدة.
يرتب التابع <code>sort</code> عناصر المصفوفة التي استُدعيت معه ويعيدها في مصفوفة جديدة.
ستجرى عملية الموازنة بين عناصر المصفوفة المراد ترتيبها باستعمال المعامل <=> أو باستعمال كتلة برمجية محددة.
 
إن استعملت الكتلة البرمجية <code>block</code> في ترتيب العناصر، فيجب أن تجري موازنة بين العنصر <code>a</code> والعنصر <code>b</code> وتعيد عددًا سالبًا إن كان <code>b</code> أكبر من <code>a</code>، أو العدد 0 إن كانا متساويين، أو عددًا موجبًا إن كان <code>b</code> أصغر من <code>a</code>. مع ذلك، لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب العناصر المتساوية مع بعضها التي تعيد عملية الموازنة بينهما القيمة 0.
ستجرى عملية الموازنة بين عناصر المصفوفة المراد ترتيبها باستعمال المعامل <code>[[Ruby/Array/Comparison|<=>]]</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 → new_ary
<syntaxhighlight lang="ruby">sort → new_ary
sort { |a, b| block } → new_ary
sort { |a, b| block } → new_ary
  </syntaxhighlight>
  </syntaxhighlight>
سطر 14: سطر 16:
==أمثلة==
==أمثلة==
أمثلة على استخدام التابع <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>]]: يعكس ترتيب عناصر المصفوفة التي استُدعيت معه ويضعها في مصفوفة جديدة.
==مصادر==
==مصادر==
* قسم التابع sort في الصنف Array في توثيق روبي الرسمي.
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-sort قسم التابع sort في الصنف Array في توثيق روبي الرسمي.]

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

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

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

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

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

sort  new_ary
sort { |a, b| block }  new_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: يعكس ترتيب عناصر المصفوفة التي استُدعيت معه ويضعها في مصفوفة جديدة.

مصادر