التابع step
الخاص بالصنف Numeric
في روبي
يستدعي التابع step
الكتلة المعطاة مع تمرير سلسلة من الأعداد إليها بدءًا من العدد الذي استُدعي معه num
، بالخطوة step
(قيمتها الافتراضية هي 1
) في كل استدعاء.
تنتهي الحلقة التكرارية عندما تكون القيمة المراد تمريرها إلى الكتلة أكبر من limit
(إن كان step
موجبًا) أو أصغر من limit
(إن كان step
سالباً)، حيث قيمة limit
الافتراضية هي اللانهاية.
عند استخدام صياغة الوسائط المسماة (keyword argument)، يمكن حذف كلا الوسيطين step
و limit
(قيمتها الافتراضية هي اللانهاية). أما عند استخدام صياغة الوسيط الثابت، لا يُسمح بإعطاء الوسيط step القيمة صفر(مثل num.step(limit, 0)
) لأسباب التوافق التاريخية.
إن كانت جميع الوسائط أعدادًا صحيحة، فإن الحلقة ستعمل باستخدام عداد صحيح (integer counter.).
إن كان أي من الوسائط عددًا عشريًا (float)، فستُحوّل كلها إلى أعداد عشرية، وستُنفّذ الحلقة التكرارية floor(n + n*Float::EPSILON) + 1 مرة، حيث n = (limit - num) / step.
خلا ذلك، ستبدأ الحلقة التكرارية من num
، وستستخدم إما معامل المقارنة (<
) أو (>
) لمقارنة العداد مع limit
، ثم تضيف 1 إلى العداد باستخدام المعامل +
.
في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف enumerator بدلاً من ذلك.
مثلا:
سوف ينتج:
Enumerator
البنية العامة
step(by: step, to: limit) {|i| block }→ self
step(by: step, to: limit) → an_enumerator
step(limit=nil, step=1) {|i| block } → self
step(limit=nil, step=1)→ an_enumerator
المعاملات
by: step
to: limit
limit
step
القيمة المُعادة
أمثلة
مثال على استخدام التابع step
:
p 1.step.take(4)
p 10.step(by: -1).take(4)
3.step(to: 5) {|i| print i, " " }
1.step(10, 2) {|i| print i, " " }
Math::E.step(to: Math::PI, by: 0.2) {|f| print f, " " }
انظر أيضا
- التابع
round
: يعيد العددnum
مُقرّبًا إلى أقرب قيمة مع دقةndigits
منزلًا عشريًا (القيمة الافتراضية هي 0). - التابع
to_c
: يعيد القيمة كعدد عقدي.