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

من موسوعة حسوب
< Ruby‏ | Range
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>step‎</code> الخاص بالصنف <code>Range</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف:...')
 
سطر 3: سطر 3:
 
[[تصنيف: 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> (انظر فقرة البنية العامة) عنصرًا من عناصر المجال بالتتابع. إن كان عنصرا البداية والنهاية عددين، فسيضاف <code>n</code> عند كل تكرار. وإلا، فإن التابع <code>step</code> سيستدعي <code>succ</code> للتكرار على عناصر المجال.
في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف enumerator بدلاً من ذلك.
 
  
الناتج
+
في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|<code>Enumerator</code>]] بدلاً من ذلك.
<syntaxhighlight lang="ruby"> 1 x
+
 
3 xxx
+
انظر صفحة <code>[[Ruby/Range|Range]]</code> لأجل تعريف الصنف <code>Xs</code>.
5 xxxxx
 
7 xxxxxxx
 
9 xxxxxxxxx
 
1 x
 
4 xxxx
 
7 xxxxxxx
 
10 xxxxxxxxxx‎</syntaxhighlight>
 
انظر صفحة <code>[[Ruby/Range|Range]]</code> لأجل تعريف الصنف Xs.
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">step(n=1) {| obj | block } → rng
 
<syntaxhighlight lang="ruby">step(n=1) {| obj | block } → rng
سطر 22: سطر 13:
 
==المعاملات==
 
==المعاملات==
 
===<code>n‎</code>===
 
===<code>n‎</code>===
عدد صحيح
+
عدد صحيح.
 
 
==القيمة المُعادة==
 
==القيمة المُعادة==
 +
يعيد  التابع <code>step</code>  مجالًا، وفي حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|<code>Enumerator</code>]].
  
 
==أمثلة==
 
==أمثلة==
سطر 31: سطر 22:
 
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="ruby"> 1 x
 +
3 xxx
 +
5 xxxxx
 +
7 xxxxxxx
 +
9 xxxxxxxxx
 +
1 x
 +
4 xxxx
 +
7 xxxxxxx
 +
10 xxxxxxxxxx‎</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/Range/size|size]]</code>: يعيد  عدد العناصر في المجال. يجب أن يكون كل من بداية ونهاية <code>[[Ruby/Range|Range]]</code> قيمتان عدديتان (<code>[[Ruby/Numeric|Numeric]]</code>)، وإلا فستُعاد nil.
+
* التابع <code>[[Ruby/Range/each|each]]</code>: يُكرر التابع <code>each</code> تنفيذ الكتلة المعطاة مع تمرير عناصر المجال إليها بالتتابع.
* التابع <code>[[Ruby/Range/to_s|to_s]]</code>: بُحوّل  المجال إلى شكل قابل للطباعة (باستخدام <code>[[Ruby/Range/to_s|to_s]]</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‎ في توثيق روبي الرسمي.]

مراجعة 19:19، 30 أكتوبر 2018

يكرر التابع step تنفيذ الكتلة المعطاة ويمرر إليها n (انظر فقرة البنية العامة) عنصرًا من عناصر المجال بالتتابع. إن كان عنصرا البداية والنهاية عددين، فسيضاف n عند كل تكرار. وإلا، فإن التابع step سيستدعي succ للتكرار على عناصر المجال.

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

انظر صفحة Range لأجل تعريف الصنف Xs.

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

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

المعاملات

n‎

عدد صحيح.

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

يعيد التابع step مجالًا، وفي حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف Enumerator.

أمثلة

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

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: يُكرر التابع each تنفيذ الكتلة المعطاة مع تمرير عناصر المجال إليها بالتتابع.

مصادر