الفرق بين المراجعتين ل"Ruby/Array/sort by!"

من موسوعة حسوب
< Ruby‏ | Array
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>Array.sort_by!‎</code> روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby Arra...')
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Array]]
 
[[تصنيف: Ruby Array]]
يُرتِّب التابع <code>sort_by!</code>!‎ المصفوفة التي استُدعيت معه وفقًا لمجموعة من المفاتيح (<code>set</code> <code>of</code> <code>keys</code>) المولدة عبر تمرير كل عنصر من عناصر المصفوفة إلى كتلة برمجية مُحددة.  
+
يُرتِّب التابع <code>sort_by!</code> المصفوفة التي استُدعيت معه وفقًا لمجموعة من المفاتيح (set of keys) المولدة عبر تمرير كل عنصر من عناصر المصفوفة إلى كتلة برمجية مُحددة.  
 +
 
 
لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب عنصري متجاورين لها نفس المفتاح.
 
لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب عنصري متجاورين لها نفس المفتاح.
في حال عدم تمرير كتلة برمجية إلى التابع <code>sort_by!</code>!‎، سيعيد كائنًا من النوع <code>Enumerator</code>.
+
 
 +
في حال عدم تمرير كتلة برمجية إلى التابع<code>sort_by!</code>، سيعيد كائنًا من النوع <code>[[Ruby/Enumerator|Enumerator]]</code>.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby"> sort_by! { |obj| block } → ary
 
<syntaxhighlight lang="ruby"> sort_by! { |obj| block } → ary
سطر 13: سطر 15:
 
  </syntaxhighlight>
 
  </syntaxhighlight>
 
==القيم المعادة==
 
==القيم المعادة==
تعاد المصفوفة نفسها المعطاة بعد ترتيب عناصرها وفقًا للقيمة التي تعيدها الكتلة <code>block</code> لكل عنصر عند استدعائها معه، أو يعاد كائن من النوع <code>Enumerator</code> إن لم تعطَ الكتلة <code>block</code>.
+
تعاد المصفوفة نفسها المعطاة بعد ترتيب عناصرها وفقًا للقيمة التي تعيدها الكتلة <code>block</code> لكل عنصر عند استدعائها معه، أو يعاد كائن من النوع <code>[[Ruby/Enumerator|Enumerator]]</code> إن لم تعطَ الكتلة <code>block</code>.
 
==أمثلة==
 
==أمثلة==
أمثلة على استخدام التابع <code>sort_by!</code>!‎:
+
أمثلة على استخدام التابع <code>sort_by!</code>:
 
<syntaxhighlight lang="ruby"> strings = %w(foo test blog a)
 
<syntaxhighlight lang="ruby"> strings = %w(foo test blog a)
 
strings.sort_by! { |str| str.length }
 
strings.sort_by! { |str| str.length }
سطر 21: سطر 23:
 
  </syntaxhighlight>
 
  </syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
* التابع [[Ruby/Array/sort! | <code>sort!</code>]]!‎: يرتب عناصر المصفوفة التي استُدعيت معه.
+
* التابع [[Ruby/Array/sort! | <code>sort!</code>]]: يرتب عناصر المصفوفة التي استُدعيت معه.
* التابع [[Ruby/Array/shuffle! | <code>shuffle!</code>]]!‎: يعيد‎ ترتيب عناصر مصفوفة بشكل عشوائي.
+
* التابع [[Ruby/Array/shuffle! | <code>shuffle</code>!‎]]: يعيد‎ ترتيب عناصر مصفوفة بشكل عشوائي.
 
* التابع [[Ruby/Array/rotate | <code>rotate</code>]]: يعيد مصفوفة جديدة تحتوي عناصر المصفوفة التي استُدعيت معها مع إزاحة (تدوير) عناصرها ليكون العنصر ذو الفهرس الممرر إليها هو العنصر الأول في المصفوفة الجديدة.
 
* التابع [[Ruby/Array/rotate | <code>rotate</code>]]: يعيد مصفوفة جديدة تحتوي عناصر المصفوفة التي استُدعيت معها مع إزاحة (تدوير) عناصرها ليكون العنصر ذو الفهرس الممرر إليها هو العنصر الأول في المصفوفة الجديدة.
* التابع [[Ruby/Array/reverse! | <code>reverse!</code>]]!‎: يعكس‎ ترتيب عناصر المصفوفة التي استُدعيت معه.
+
* التابع [[Ruby/Array/reverse! | <code>reverse!</code>]]: يعكس‎ ترتيب عناصر المصفوفة التي استُدعيت معه.
 
==مصادر==
 
==مصادر==
* قسم التابع sort_by!‎ في الصنف Array في توثيق روبي الرسمي.
+
* [https://ruby-doc.org/core-2.5.1/Array.html#method-i-sort_by-21 قسم التابع sort_by!‎ في الصنف Array في توثيق روبي الرسمي.]

مراجعة 17:31، 8 سبتمبر 2018

يُرتِّب التابع sort_by!‎ المصفوفة التي استُدعيت معه وفقًا لمجموعة من المفاتيح (set of keys) المولدة عبر تمرير كل عنصر من عناصر المصفوفة إلى كتلة برمجية مُحددة.

لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب عنصري متجاورين لها نفس المفتاح.

في حال عدم تمرير كتلة برمجية إلى التابعsort_by!‎، سيعيد كائنًا من النوع Enumerator.

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

 sort_by! { |obj| block }  ary
sort_by!  Enumerator

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

تعاد المصفوفة نفسها المعطاة بعد ترتيب عناصرها وفقًا للقيمة التي تعيدها الكتلة block لكل عنصر عند استدعائها معه، أو يعاد كائن من النوع Enumerator إن لم تعطَ الكتلة block.

أمثلة

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

 strings = %w(foo test blog a)
strings.sort_by! { |str| str.length }
puts strings  # ["a", "foo", "test", "blog"]

انظر أيضًا

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

مصادر