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

من موسوعة حسوب
< Ruby‏ | Numeric
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>step‎</code> الخاص بالصنف <code>Numeric</code> في روبي}}</noinclude> تصنيف: Ruby تصني...')
(لا فرق)

مراجعة 23:50، 27 أكتوبر 2018

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

مصادر