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

من موسوعة حسوب
< Ruby‏ | Range
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>step‎</code> الخاص بالصنف <code>Range</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>Range.step‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Range]]
[[تصنيف: Ruby Range]]
يكرر التابع <code>step</code> تنفيذ الكتلة المعطاة ويمرر إليها <code>n</code> (انظر فقرة البنية العامة) عنصرًا من عناصر المجال بالتتابع. إن كان عنصرا البداية والنهاية عددين، فسيضاف <code>n</code> عند كل تكرار. وإلا، فإن التابع <code>step</code> سيستدعي <code>succ</code> للتكرار على عناصر المجال.
يكرر التابع <code>step</code> تنفيذ الكتلة المعطاة ويمرر إليها <code>n</code> عنصرًا من عناصر المجال بالتتابع.


في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|<code>Enumerator</code>]] بدلاً من ذلك.
إن كان عنصرا البداية والنهاية عددين، فسيضاف <code>n</code> عند كل تكرار. وإلا، فإن التابع <code>step</code> سيستدعي <code>succ</code> للتكرار على عناصر المجال.


انظر صفحة <code>[[Ruby/Range|Range]]</code> لأجل تعريف الصنف <code>Xs</code>.
في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|<code>Enumerator</code>]] بدلاً من ذلك.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">step(n=1) {| obj | block } → rng
<syntaxhighlight lang="ruby">step(n=1) {| obj | block } → rng
سطر 13: سطر 13:
==المعاملات==
==المعاملات==
===<code>n‎</code>===
===<code>n‎</code>===
عدد صحيح.
عدد صحيح يمثِّل الخطوة. الخطوة الافتراضية هي: 1.
==القيمة المُعادة==
==القيمة المعادة==
يعيد  التابع <code>step</code>  مجالًا، وفي حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|<code>Enumerator</code>]].
يعاد مجالٌ، أو كائن من الصنف [[Ruby/Enumerator|<code>Enumerator</code>]] في حال لم تُعطَ أي كتلة.


==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>step‎</code>:
مثال على استخدام التابع <code>step‎</code> (انظر صفحة <code>[[Ruby/Range|Range]]</code> للاطلاع على مثال تعريف الصنف <code>Xs</code>):
<syntaxhighlight lang="ruby">range = Xs.new(1)..Xs.new(10)
<syntaxhighlight lang="ruby">range = Xs.new(1)..Xs.new(10)
range.step(2) {|x| puts x}
range.step(2) {|x| puts x}
puts
puts
range.step(3) {|x| puts x}‎</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby"> 1 x
range.step(3) {|x| puts x}‎</syntaxhighlight>ناتج تنفيذ هذه الشيفرة هو:<syntaxhighlight lang="text"> 1 x
  3 xxx
  3 xxx
  5 xxxxx
  5 xxxxx
سطر 31: سطر 31:
  7 xxxxxxx
  7 xxxxxxx
10 xxxxxxxxxx‎</syntaxhighlight>
10 xxxxxxxxxx‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضًا==
* التابع <code>[[Ruby/Range/each|each]]</code>: يُكرر التابع <code>each</code> تنفيذ الكتلة المعطاة مع تمرير عناصر المجال إليها بالتتابع.
* التابع <code>[[Ruby/Range/each|each]]</code>: يُكرر تنفيذ الكتلة المعطاة مع تمرير عناصر المجال إليها بالتتابع.


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

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

يكرر التابع step تنفيذ الكتلة المعطاة ويمرر إليها n عنصرًا من عناصر المجال بالتتابع.

إن كان عنصرا البداية والنهاية عددين، فسيضاف n عند كل تكرار. وإلا، فإن التابع step سيستدعي succ للتكرار على عناصر المجال.

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

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

step(n=1) {| obj | block }  rng
step(n=1) an_enumerator

المعاملات

n‎

عدد صحيح يمثِّل الخطوة. الخطوة الافتراضية هي: 1.

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

يعاد مجالٌ، أو كائن من الصنف Enumerator في حال لم تُعطَ أي كتلة.

أمثلة

مثال على استخدام التابع step‎ (انظر صفحة Range للاطلاع على مثال تعريف الصنف Xs):

range = Xs.new(1)..Xs.new(10)
range.step(2) {|x| puts x}
puts
range.step(3) {|x| puts x}

ناتج تنفيذ هذه الشيفرة هو:

 1 x
 3 xxx
 5 xxxxx
 7 xxxxxxx
 9 xxxxxxxxx
 1 x
 4 xxxx
 7 xxxxxxx
10 xxxxxxxxxx‎

انظر أيضًا

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

مصادر