الفرق بين المراجعتين ل"Ruby/Enumerable"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
سطر 38: سطر 38:
  
 
===<code>[[Ruby/Enumerable/each_cons|each_cons]]</code>===
 
===<code>[[Ruby/Enumerable/each_cons|each_cons]]</code>===
 +
يُكرِّر الكتلة المعطاة على كل مصفوفة من <code>n</code> عنصر متتالي من عناصر [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه.
 +
 
===<code>[[Ruby/Enumerable/each_entry|each_entry]]</code>===
 
===<code>[[Ruby/Enumerable/each_entry|each_entry]]</code>===
 +
يستدعي الكتلة المعطاة مرةً واحدةً على كل عنصر من عناصر [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه.
 +
 
===<code>[[Ruby/Enumerable/each_slice|each_slice]]</code>===
 
===<code>[[Ruby/Enumerable/each_slice|each_slice]]</code>===
 +
يكرِّر الكتلة المعطاة على كل قطعة مكونة من <code>n</code> عنصر من عناصر [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه.
 +
 
===<code>[[Ruby/Enumerable/each_with_index|each_with_index]]</code>===
 
===<code>[[Ruby/Enumerable/each_with_index|each_with_index]]</code>===
 +
يستدعي الكتلة المعطاة مع وسيطين هما: العنصر نفسه وفهرسه لكل عنصر من عناصر [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه. 
 +
 
===<code>[[Ruby/Enumerable/each_with_object|each_with_object]]</code>===
 
===<code>[[Ruby/Enumerable/each_with_object|each_with_object]]</code>===
 +
يكرِّر الكتلة المعطاة على كل عنصر من عناصر [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه مع كائن اعتباطي (الكائن المُمرَّر إليه) ثم يعيد هذا الكائن.
 +
 
===<code>[[Ruby/Enumerable/entries|entries]]</code>===
 
===<code>[[Ruby/Enumerable/entries|entries]]</code>===
 +
يعيد مصفوفة تحوي العناصر الموجودة في [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه.
 +
 
===<code>[[Ruby/Enumerable/find|find]]</code>===
 
===<code>[[Ruby/Enumerable/find|find]]</code>===
 +
يمرِّر كل عنصر من عناصر [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه إلى الكتلة المعطاة ثم يعيد أول عنصر محقق لها (لا تعيد معه القيمة <code>false</code>).
 +
 
===<code>[[Ruby/Enumerable/find_all|find_all]]</code>===
 
===<code>[[Ruby/Enumerable/find_all|find_all]]</code>===
 +
يعيد مصفوفة تحوي جميع العناصر المحققة للكتلة المعطاة (أي التي تعيدها معها قيمة صحيحة [true value]) من عناصر [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه.
 +
 
===<code>[[Ruby/Enumerable/find_index|find_index]]</code>===
 
===<code>[[Ruby/Enumerable/find_index|find_index]]</code>===
 +
يوازن كل عنصر من عناصر [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه مع قيمة محدَّدة ثم يعيد فهرس أول قيمة مطابقة، أو يمرِّر تلك العناصر إلى الكتلة المعطاة ويعيد فهرس أول عنصر محقق لها (لا تعيد معه القيمة <code>false</code>).
 +
 
===<code>[[Ruby/Enumerable/first|first]]</code>===
 
===<code>[[Ruby/Enumerable/first|first]]</code>===
 +
يعيد أول عنصر أو أول <code>n</code> عنصر من عناصر <nowiki/>[[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه.
 +
 
===<code>[[Ruby/Enumerable/flat_map|flat_map]]</code>===
 
===<code>[[Ruby/Enumerable/flat_map|flat_map]]</code>===
 +
يعيد مصفوفة جديدة تحوي النتائج المجمَّعة الناتجة عن تنفيذ الكتلة المعطاة مع كل عنصر من عناصر [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه.
 +
 
===<code>[[Ruby/Enumerable/grep|grep]]</code>===
 
===<code>[[Ruby/Enumerable/grep|grep]]</code>===
 +
يعيد مصفوفة تحوي كل عنصر مطابق لنمط محدَّد من عناصر [[Ruby/Enumerable|الكائن القابل للتعداد]] الذي استدعي معه.
 +
 
===<code>[[Ruby/Enumerable/grep_v|grep_v]]</code>===
 
===<code>[[Ruby/Enumerable/grep_v|grep_v]]</code>===
 +
يعدُّ نسخة معاكسة للتابع <code>[[Ruby/Enumerable/grep|grep]]</code>، إذ يعيد مصفوفة تحوي كل العناصر الغير مطابقة لنمط محدَّد من عناصر الكائن القابل للتعداد المعطى.
 +
 
===<code>[[Ruby/Enumerable/group_by|group_by]]</code>===
 
===<code>[[Ruby/Enumerable/group_by|group_by]]</code>===
 +
يجمِّع عناصر الكائن القابل للتعداد الذي استدعي معه في مجموعات بحسب النتيجة المقابلة لكل عنصر التي تعيدها الكتلة المعطاة بعد تمريره إليها.
 +
 
===<code>[[Ruby/Enumerable/include-3F|include?‎]]</code>===
 
===<code>[[Ruby/Enumerable/include-3F|include?‎]]</code>===
 +
يتحقق من احتواء [[Ruby/Enumerable|كائن قابل للتعداد]] على عنصر محدَّد.
 +
 
===<code>[[Ruby/Enumerable/inject|inject]]</code>===
 
===<code>[[Ruby/Enumerable/inject|inject]]</code>===
 
===<code>[[Ruby/Enumerable/lazy|lazy]]</code>===
 
===<code>[[Ruby/Enumerable/lazy|lazy]]</code>===
سطر 58: سطر 88:
 
===<code>[[Ruby/Enumerable/max_by|max_by]]</code>===
 
===<code>[[Ruby/Enumerable/max_by|max_by]]</code>===
 
===<code>[[Ruby/Enumerable/member-3F|member?‎]]</code>===
 
===<code>[[Ruby/Enumerable/member-3F|member?‎]]</code>===
 +
يتحقق من احتواء [[Ruby/Enumerable|كائن قابل للتعداد]] على عنصر محدَّد (مرة واحدة أو أكثر).
 +
 
===<code>[[Ruby/Enumerable/min|min]]</code>===
 
===<code>[[Ruby/Enumerable/min|min]]</code>===
 
===<code>[[Ruby/Enumerable/min_by|min_by]]</code>===
 
===<code>[[Ruby/Enumerable/min_by|min_by]]</code>===
سطر 63: سطر 95:
 
===<code>[[Ruby/Enumerable/minmax_by|minmax_by]]</code>===
 
===<code>[[Ruby/Enumerable/minmax_by|minmax_by]]</code>===
 
===<code>[[Ruby/Enumerable/none-3F|none?‎]]</code>===
 
===<code>[[Ruby/Enumerable/none-3F|none?‎]]</code>===
 +
يتحقق من خلو [[Ruby/Enumerable|كائن قابل للتعداد]] من أي عنصر محقِّق للكتلة المعطاة (لا تعيد مع أي عنصر القيمة <code>true</code>) أو مطابق للنمط محدَّد.
 +
 
===<code>[[Ruby/Enumerable/one-3F|one?‎]]</code>===
 
===<code>[[Ruby/Enumerable/one-3F|one?‎]]</code>===
 +
يتحقق من احتواء [[Ruby/Enumerable|كائن قابل للتعداد]] على عنصر واحد فقط محقِّق للكتلة المعطاة (لا تعيد مع أي عنصر القيمة <code>true</code> باستثناء عنصر واحد فقط) أو مطابق للنمط محدَّد.
 +
 
===<code>[[Ruby/Enumerable/partition|partition]]</code>===
 
===<code>[[Ruby/Enumerable/partition|partition]]</code>===
 
===<code>[[Ruby/Enumerable/reduce|reduce]]</code>===
 
===<code>[[Ruby/Enumerable/reduce|reduce]]</code>===

مراجعة 08:04، 30 ديسمبر 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

يحذف العناصر الأولى المحقِّقة لشرط معيِّن من المُعدِّد المعطى ثم يعيد مصفوفة تحوي العناصر المتبقية.

each_cons

يُكرِّر الكتلة المعطاة على كل مصفوفة من n عنصر متتالي من عناصر الكائن القابل للتعداد الذي استدعي معه.

each_entry

يستدعي الكتلة المعطاة مرةً واحدةً على كل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه.

each_slice

يكرِّر الكتلة المعطاة على كل قطعة مكونة من n عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه.

each_with_index

يستدعي الكتلة المعطاة مع وسيطين هما: العنصر نفسه وفهرسه لكل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه. 

each_with_object

يكرِّر الكتلة المعطاة على كل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه مع كائن اعتباطي (الكائن المُمرَّر إليه) ثم يعيد هذا الكائن.

entries

يعيد مصفوفة تحوي العناصر الموجودة في الكائن القابل للتعداد الذي استدعي معه.

find

يمرِّر كل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه إلى الكتلة المعطاة ثم يعيد أول عنصر محقق لها (لا تعيد معه القيمة false).

find_all

يعيد مصفوفة تحوي جميع العناصر المحققة للكتلة المعطاة (أي التي تعيدها معها قيمة صحيحة [true value]) من عناصر الكائن القابل للتعداد الذي استدعي معه.

find_index

يوازن كل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه مع قيمة محدَّدة ثم يعيد فهرس أول قيمة مطابقة، أو يمرِّر تلك العناصر إلى الكتلة المعطاة ويعيد فهرس أول عنصر محقق لها (لا تعيد معه القيمة false).

first

يعيد أول عنصر أو أول n عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه.

flat_map

يعيد مصفوفة جديدة تحوي النتائج المجمَّعة الناتجة عن تنفيذ الكتلة المعطاة مع كل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه.

grep

يعيد مصفوفة تحوي كل عنصر مطابق لنمط محدَّد من عناصر الكائن القابل للتعداد الذي استدعي معه.

grep_v

يعدُّ نسخة معاكسة للتابع grep، إذ يعيد مصفوفة تحوي كل العناصر الغير مطابقة لنمط محدَّد من عناصر الكائن القابل للتعداد المعطى.

group_by

يجمِّع عناصر الكائن القابل للتعداد الذي استدعي معه في مجموعات بحسب النتيجة المقابلة لكل عنصر التي تعيدها الكتلة المعطاة بعد تمريره إليها.

include?‎

يتحقق من احتواء كائن قابل للتعداد على عنصر محدَّد.

inject

lazy

map

max

max_by

member?‎

يتحقق من احتواء كائن قابل للتعداد على عنصر محدَّد (مرة واحدة أو أكثر).

min

min_by

minmax

minmax_by

none?‎

يتحقق من خلو كائن قابل للتعداد من أي عنصر محقِّق للكتلة المعطاة (لا تعيد مع أي عنصر القيمة true) أو مطابق للنمط محدَّد.

one?‎

يتحقق من احتواء كائن قابل للتعداد على عنصر واحد فقط محقِّق للكتلة المعطاة (لا تعيد مع أي عنصر القيمة true باستثناء عنصر واحد فقط) أو مطابق للنمط محدَّد.

partition

reduce

reject

reverse_each

select

slice_after

slice_before

slice_when

sort

sort_by

sum

take

take_while

to_a

to_h

uniq

zip

مصادر