الفرق بين المراجعتين لصفحة: «Ruby/Array/sort»
أنشأ الصفحة ب'<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>]] | * التابع<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
: يعكس ترتيب عناصر المصفوفة التي استُدعيت معه ويضعها في مصفوفة جديدة.