الفرق بين المراجعتين لصفحة: «Ruby/Range/each»

من موسوعة حسوب
< Ruby‏ | Range
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>each‎</code> الخاص بالصنف <code>Range</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>Range.each‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
سطر 5: سطر 5:
يُكرر التابع <code>each</code> تنفيذ الكتلة المعطاة مع تمرير عناصر المجال إليها بالتتابع.
يُكرر التابع <code>each</code> تنفيذ الكتلة المعطاة مع تمرير عناصر المجال إليها بالتتابع.


لا يمكن استخدام التابع <code>each</code> إلا ​​إن كان عنصر بداية المجال يدعم التابع <code>succ</code>.  يُطلق الاستثناء <code>[[Ruby/TypeError|TypeError]]</code> إن لم يٌعرّف ذلك العنصر التابع <code>succ</code> (مثل الصنف <code>[[Ruby/Float|Float]]</code>).
لا يمكن استخدام التابع <code>each</code> إلا ​​إن كان عنصر بداية المجال يدعم التابع <code>succ</code>.  يُطلَق الاستثناء <code>[[Ruby/TypeError|TypeError]]</code> إن لم يٌعرّف ذلك العنصر التابع <code>succ</code> (مثل الصنف <code>[[Ruby/Float|Float]]</code>).


في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|enumerator]] بدلاً من ذلك.
في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|<code>enumerator</code>]] بدلًا من ذلك.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">each {| i | block } → rng
<syntaxhighlight lang="ruby">each {| i | block } → rng
each → an_enumerator‎</syntaxhighlight>
each → an_enumerator‎</syntaxhighlight>
==القيمة المُعادة==
==القيمة المعادة==
يعيد التابع <code>each</code> مجالًا، وفي حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|enumerator]].
يعاد مجالٌ ناتج عن تنفيذ الكتلة <code>block</code> على كل عنصر من عناصر المجال المعطى. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|<code>enumerator</code>]].


==أمثلة==
==أمثلة==
سطر 20: سطر 20:
(2.5..5).each {|n| print n, ' ' }
(2.5..5).each {|n| print n, ' ' }
# raises: TypeError: can't iterate from Float‎</syntaxhighlight>
# raises: TypeError: can't iterate from Float‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضًا==
* التابع <code>[[Ruby/Range/cover-3F|cover?‎]]</code>: يعيد  القيمة <code>true</code> إن كان <code>obj</code> محصورًا بين بداية ونهاية المجال.
* التابع <code>[[Ruby/Range/cover-3F|cover?‎]]</code>: يتحقق إن كان الكائن المُمرَّر إليه محصورًا بين بداية ونهاية المجال.


==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Range.html#method-i-each قسم التابع each‎ في الصنف Range‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Range.html#method-i-each قسم التابع each‎ في الصنف Range‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 06:13، 3 ديسمبر 2018

يُكرر التابع each تنفيذ الكتلة المعطاة مع تمرير عناصر المجال إليها بالتتابع.

لا يمكن استخدام التابع each إلا ​​إن كان عنصر بداية المجال يدعم التابع succ. يُطلَق الاستثناء TypeError إن لم يٌعرّف ذلك العنصر التابع succ (مثل الصنف Float).

في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف enumerator بدلًا من ذلك.

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

each {| i | block }  rng
each  an_enumerator

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

يعاد مجالٌ ناتج عن تنفيذ الكتلة block على كل عنصر من عناصر المجال المعطى. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف enumerator.

أمثلة

مثال على استخدام التابع each‎:

(10..15).each {|n| print n, ' ' }
# prints: 10 11 12 13 14 15
(2.5..5).each {|n| print n, ' ' }
# raises: TypeError: can't iterate from Float‎

انظر أيضًا

  • التابع cover?‎: يتحقق إن كان الكائن المُمرَّر إليه محصورًا بين بداية ونهاية المجال.

مصادر