الفرق بين المراجعتين لصفحة: «Ruby/Range/step»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>step | <noinclude>{{DISPLAYTITLE: التابع <code>Range.step</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Range]] | [[تصنيف: Ruby Range]] | ||
يكرر التابع <code>step</code> تنفيذ الكتلة المعطاة ويمرر إليها <code>n</code> | يكرر التابع <code>step</code> تنفيذ الكتلة المعطاة ويمرر إليها <code>n</code> عنصرًا من عناصر المجال بالتتابع. | ||
إن كان عنصرا البداية والنهاية عددين، فسيضاف <code>n</code> عند كل تكرار. وإلا، فإن التابع <code>step</code> سيستدعي <code>succ</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. | ||
==القيمة | ==القيمة المعادة== | ||
يعاد مجالٌ، أو كائن من الصنف [[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> | 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>[[Ruby/Range/each|each]]</code>: يُكرر تنفيذ الكتلة المعطاة مع تمرير عناصر المجال إليها بالتتابع. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Range.html#method-i-step قسم | *[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
: يُكرر تنفيذ الكتلة المعطاة مع تمرير عناصر المجال إليها بالتتابع.