التابع 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: يعيد القيمة كعدد عقدي.