الفرق بين المراجعتين لصفحة: «Ruby/Array/sort!»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Array]] | [[تصنيف: Ruby Array]] | ||
يرتب التابع | يرتب التابع <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>]]: يُرتب المصفوفة التي استُدعيت معه وفقًا لمجموعة من المفاتيح ( | * التابع<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!
:يعكس ترتيب عناصر المصفوفة التي استُدعيت معه.