الفرق بين المراجعتين لصفحة: «Ruby/Enumerable»
جميل-بيلوني (نقاش | مساهمات) إنشاء الصفحة. |
جميل-بيلوني (نقاش | مساهمات) لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
{{DISPLAYTITLE:المخلوط <code>EncodingError</code> في روبي}} | {{DISPLAYTITLE:المخلوط <code>EncodingError</code> في روبي}} | ||
يوفر المخلوط <code>Enumerable</code> مجموعة من الأصناف مع توابع | |||
يوفر المخلوط <code>Enumerable</code> مجموعة من الأصناف مع توابع بحث ونقل (traversal) عديدة قادرة على ترتيب عناصر مجموعة مع بعضها بعضًا. يجب أن يوفر الصنف التابع <code>each</code> الذي يعيد العضو التالي من المجموعة. إن استعمل التابع <code>max</code>، أو <code>mix</code>، أو <code>sort</code>، فيجب أن يُوازَن بين الكائنات في المجموعة باستعمال المعامل <code><=></code> الذي تعتمد عليه تلك التوابع في ترتيب عناصر المجموعة الواحدة مع بعضها بعضًا. | |||
== توابع النسخة العامة == | == توابع النسخة العامة == | ||
===<code>[[Ruby/Enumerable/all-3F|all?]]</code>=== | |||
يتحقق إن كان كل عنصر من عناصر المجموعة التي استدعيت معه محقَّقًا للكتلة المعطاة بعد تمريره إليها، أو لا تساوي قيمته <code>false</code> أو <code>nil</code> إن لم تُعطَ الكتلة، أو مطابقًا للنمط <code>pattern</code> المُمرَّر إليه. | |||
===<code>[[Ruby/Enumerable/any-3F|any?]]</code>=== | |||
يتحقق إن كان أحد عناصر المجموعة التي استدعيت معه محقَّقًا للكتلة المعطاة بعد تمريره إليها، أو لا يساوي <code>false</code> أو <code>nil</code> إن لم تُعطَ الكتلة، أو مطابقًا للنمط <code>pattern</code> المُمرَّر إليه. | |||
===<code>[[Ruby/Enumerable/chunk|chunk]]</code>=== | |||
يُمرِّر كل عنصر من عناصر المجموعة التي استدعيت معه إلى الكتلة المعطاة ثمَّ يُقطِّعها إلى أجزاء (قطع صغيرة) بحسب القيمة المعادة من الكتلة. | |||
===<code>[[Ruby/Enumerable/chunk_while|chunk_while]]</code>=== | |||
ينشئ [[Ruby/Enumerator|مُعدِّدًا]] لكل جزء من العناصر المجمَّعة سويةً. تُعرَّف بداية الأجزاء (chunks) عبر الكتلة المعطاة. | |||
===<code>[[Ruby/Enumerable/collect|collect]]</code>=== | |||
يعيد مصفوفة جديدة تحوي نتائج تنفيذ الكتلة المعطاة دفعةً واحدةً مع كل عنصر من عناصر [[Ruby/Enumerator|المُعدِّد]] الذي استدعي معه. | |||
===<code>[[Ruby/Enumerable/collect_concat|collect_concat]]</code>=== | |||
يعيد مصفوفة جديدة مع نتائج متصلة لتنفيذ الكتلة المعطاة مع كل عنصر من عناصر [[Ruby/Enumerator|المُعدِّد]] الذي استدعي معه. | |||
===<code>[[Ruby/Enumerable/count|count]]</code>=== | |||
يعيد عدد العناصر الموجودة في [[Ruby/Enumerator|المُعدِّد]] الذي استدعي معه. | |||
===<code>[[Ruby/Enumerable/cycle|cycle]]</code>=== | |||
يستدعي الكتلة المعطاة مع كل عنصر من عناصر المُعدِّد الذي استدعي معه عددًا محدَّدًا من المرات أو إلى ما لانهاية إن مُرِّرت القيمة <code>nil</code> إليه أو لم يمُرَّر أي شيء. | |||
===<code>[[Ruby/Enumerable/detect|detect]]</code>=== | |||
يمرِّر كل عنصر من عناصر المُعدِّد الذي استدعي معه إلى الكتلة المعطاة ثم يعيد أول عنصر لا تعيد الكتلة معه القيمة <code>false</code>. | |||
===<code>[[Ruby/Enumerable/drop|drop]]</code>=== | |||
يحذف أول عدة عناصر من [[Ruby/Enumerator|المُعدِّد]] الذي استدعي معه ثم يعيد بقية العناصر في مصفوفة. | |||
===<code>[[Ruby/Enumerable/drop_while|drop_while]]</code>=== | |||
يحذف العناصر الأولى المحقِّقة لشرط معيِّن من المُعدِّد المعطى ثم يعيد مصفوفة تحوي العناصر المتبقية. | |||
===<code>[[Ruby/Enumerable/each_cons|each_cons]]</code>=== | |||
===<code>[[Ruby/Enumerable/each_entry|each_entry]]</code>=== | |||
===<code>[[Ruby/Enumerable/each_slice|each_slice]]</code>=== | |||
===<code>[[Ruby/Enumerable/each_with_index|each_with_index]]</code>=== | |||
===<code>[[Ruby/Enumerable/each_with_object|each_with_object]]</code>=== | |||
===<code>[[Ruby/Enumerable/entries|entries]]</code>=== | |||
===<code>[[Ruby/Enumerable/find|find]]</code>=== | |||
===<code>[[Ruby/Enumerable/find_all|find_all]]</code>=== | |||
===<code>[[Ruby/Enumerable/find_index|find_index]]</code>=== | |||
===<code>[[Ruby/Enumerable/first|first]]</code>=== | |||
===<code>[[Ruby/Enumerable/flat_map|flat_map]]</code>=== | |||
===<code>[[Ruby/Enumerable/grep|grep]]</code>=== | |||
===<code>[[Ruby/Enumerable/grep_v|grep_v]]</code>=== | |||
===<code>[[Ruby/Enumerable/group_by|group_by]]</code>=== | |||
===<code>[[Ruby/Enumerable/include-3F|include?]]</code>=== | |||
===<code>[[Ruby/Enumerable/inject|inject]]</code>=== | |||
===<code>[[Ruby/Enumerable/lazy|lazy]]</code>=== | |||
===<code>[[Ruby/Enumerable/map|map]]</code>=== | |||
===<code>[[Ruby/Enumerable/max|max]]</code>=== | |||
===<code>[[Ruby/Enumerable/max_by|max_by]]</code>=== | |||
===<code>[[Ruby/Enumerable/member-3F|member?]]</code>=== | |||
===<code>[[Ruby/Enumerable/min|min]]</code>=== | |||
===<code>[[Ruby/Enumerable/min_by|min_by]]</code>=== | |||
===<code>[[Ruby/Enumerable/minmax|minmax]]</code>=== | |||
===<code>[[Ruby/Enumerable/minmax_by|minmax_by]]</code>=== | |||
===<code>[[Ruby/Enumerable/none-3F|none?]]</code>=== | |||
===<code>[[Ruby/Enumerable/one-3F|one?]]</code>=== | |||
===<code>[[Ruby/Enumerable/partition|partition]]</code>=== | |||
===<code>[[Ruby/Enumerable/reduce|reduce]]</code>=== | |||
===<code>[[Ruby/Enumerable/reject|reject]]</code>=== | |||
===<code>[[Ruby/Enumerable/reverse_each|reverse_each]]</code>=== | |||
===<code>[[Ruby/Enumerable/select|select]]</code>=== | |||
===<code>[[Ruby/Enumerable/slice_after|slice_after]]</code>=== | |||
===<code>[[Ruby/Enumerable/slice_before|slice_before]]</code>=== | |||
===<code>[[Ruby/Enumerable/slice_when|slice_when]]</code>=== | |||
===<code>[[Ruby/Enumerable/sort|sort]]</code>=== | |||
===<code>[[Ruby/Enumerable/sort_by|sort_by]]</code>=== | |||
===<code>[[Ruby/Enumerable/sum|sum]]</code>=== | |||
===<code>[[Ruby/Enumerable/take|take]]</code>=== | |||
===<code>[[Ruby/Enumerable/take_while|take_while]]</code>=== | |||
===<code>[[Ruby/Enumerable/to_a|to_a]]</code>=== | |||
===<code>[[Ruby/Enumerable/to_h|to_h]]</code>=== | |||
===<code>[[Ruby/Enumerable/uniq|uniq]]</code>=== | |||
===<code>[[Ruby/Enumerable/zip|zip]]</code>=== | |||
== مصادر == | == مصادر == | ||
* [http://ruby-doc.org/core-2.5.1/Enumerable.html صفحة المخلوط Enumerable في توثيق روبي الرسمي.] | * [http://ruby-doc.org/core-2.5.1/Enumerable.html صفحة المخلوط Enumerable في توثيق روبي الرسمي.] |
مراجعة 15:24، 29 ديسمبر 2018
يوفر المخلوط Enumerable
مجموعة من الأصناف مع توابع بحث ونقل (traversal) عديدة قادرة على ترتيب عناصر مجموعة مع بعضها بعضًا. يجب أن يوفر الصنف التابع each
الذي يعيد العضو التالي من المجموعة. إن استعمل التابع max
، أو mix
، أو sort
، فيجب أن يُوازَن بين الكائنات في المجموعة باستعمال المعامل <=>
الذي تعتمد عليه تلك التوابع في ترتيب عناصر المجموعة الواحدة مع بعضها بعضًا.
توابع النسخة العامة
all?
يتحقق إن كان كل عنصر من عناصر المجموعة التي استدعيت معه محقَّقًا للكتلة المعطاة بعد تمريره إليها، أو لا تساوي قيمته false
أو nil
إن لم تُعطَ الكتلة، أو مطابقًا للنمط pattern
المُمرَّر إليه.
any?
يتحقق إن كان أحد عناصر المجموعة التي استدعيت معه محقَّقًا للكتلة المعطاة بعد تمريره إليها، أو لا يساوي false
أو nil
إن لم تُعطَ الكتلة، أو مطابقًا للنمط pattern
المُمرَّر إليه.
chunk
يُمرِّر كل عنصر من عناصر المجموعة التي استدعيت معه إلى الكتلة المعطاة ثمَّ يُقطِّعها إلى أجزاء (قطع صغيرة) بحسب القيمة المعادة من الكتلة.
chunk_while
ينشئ مُعدِّدًا لكل جزء من العناصر المجمَّعة سويةً. تُعرَّف بداية الأجزاء (chunks) عبر الكتلة المعطاة.
collect
يعيد مصفوفة جديدة تحوي نتائج تنفيذ الكتلة المعطاة دفعةً واحدةً مع كل عنصر من عناصر المُعدِّد الذي استدعي معه.
collect_concat
يعيد مصفوفة جديدة مع نتائج متصلة لتنفيذ الكتلة المعطاة مع كل عنصر من عناصر المُعدِّد الذي استدعي معه.
count
يعيد عدد العناصر الموجودة في المُعدِّد الذي استدعي معه.
cycle
يستدعي الكتلة المعطاة مع كل عنصر من عناصر المُعدِّد الذي استدعي معه عددًا محدَّدًا من المرات أو إلى ما لانهاية إن مُرِّرت القيمة nil
إليه أو لم يمُرَّر أي شيء.
detect
يمرِّر كل عنصر من عناصر المُعدِّد الذي استدعي معه إلى الكتلة المعطاة ثم يعيد أول عنصر لا تعيد الكتلة معه القيمة false
.
drop
يحذف أول عدة عناصر من المُعدِّد الذي استدعي معه ثم يعيد بقية العناصر في مصفوفة.
drop_while
يحذف العناصر الأولى المحقِّقة لشرط معيِّن من المُعدِّد المعطى ثم يعيد مصفوفة تحوي العناصر المتبقية.