التابع Numeric.step
في روبي
يستدعي التابع step
الكتلة المعطاة مع تمرير سلسلة من الأعداد إليها بدءًا من العدد الذي استُدعي معه وحتى قيمة محدَّدة مع الزيادة أو الطرح بقدار خطوة ثابتة معطاة.
البنية العامة
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
تنتهي الحلقة التكرارية عندما تكون القيمة المراد تمريرها إلى الكتلة أكبر من قيمة المعامل limit
إن كان step
موجبًا، أو أصغر من القيمة limit
إن كان step
سالبًا.
عند استخدام صياغة الوسائط المسماة (keyword argument) المفضلة، يمكن حذف الوسيطين step
و limit
. أما عند استخدام صياغة الوسائط الموضعية الثابتة (fixed position argument)، فلا يُسمح بإعطاء الوسيط step
القيمة صفر (مثل num.step(limit, 0)
) لأسباب تتعلق بالتوافق مع الإصدارات القديمة.
إن كانت جميع الوسائط أعدادًا صحيحةً، فإن الحلقة ستعمل باستخدام عداد صحيح (integer counter). وإن كان أيٌّ من الوسائط عددًا عشريًا، فستُحوّل كلها إلى أعداد عشرية، وستُنفّذ الحلقة التكرارية floor(n + n*Float::EPSILON) + 1
مرة، إذ n = (limit - num)/ step
. خلا ذلك، ستبدأ الحلقة التكرارية من العدد num
، وستستخدم إما معامل الموازنة <
أو >
، لموازنة العداد مع القيمة limit
، ثم تضيف 1
إلى العداد باستخدام المعامل +
.
في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف enumerator
.
المعاملات
step
عدد يمثل الخطوة. القيمة الافتراضية هي: 1.
limit
عدد يمثل حد الحلقة التكرارية. القيمة الافتراضية هي: nil
(أي اللانهاية [infinity]).
القيمة المعادة
يعاد الكائن الذي استُدعي معه، أو الكائن enumerator
في حال لم تُعطَ أية كتلة.
أمثلة
مثال على استخدام التابع 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, " " }
ناتج تنفيذ هذا المثال هو:
[1, 2, 3, 4]
[10, 9, 8, 7]
3 4 5
1 3 5 7 9
2.718281828459045 2.9182818284590453 3.118281828459045
انظر أيضا
- التابع
to_c
: يحول العدد الذي استدعي معه إلى عدد عقدي.