الفرق بين المراجعتين لصفحة: «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
باستثناء عنصر واحد فقط) أو مطابق للنمط محدَّد.