اذهب إلى المحتوى

السؤال

نشر

ما الطريقة الصحيحة للدوران على مدى للوقت في روبي، ومن ثم تعيين قيمة delta؟ الفكرة التي خطرت على بالي الفكرة التالي والتي لا تعمل؟

for hour in (start_time..end_time, hour)
    hour #=> Time object set to hour
end

فكيف أستطيع فعل ذلك في روبي؟

Recommended Posts

  • 0
نشر

هنالك عدة طرق في لغة روبي للدوران على مدى وقت معين، ففي الإصدارات السابقة للروبي (ما قبل الإصدار 1.9) يمكنك استخدام تابع step كما في المثال التالي:

(start_time..end_time).step(3600) do |hour|
  # ...
end

ومع ذلك، فإن هذه الإستراتيجية بطيئة نوعا ما، لأنها ستستدعي تابع succ 3600 مرة، وبدلا من ذلك يمكنك استخدام هذه الطريقة التي استعملنا فيها حلقة التكرار while:

hour = start_time
while hour < end_time
  # ...
  hour += 3600
end

إذا كنت تستخدم ريلز فيمكنك استبدال 3600 بـ 1.hour والذي سيكون أكثر قابلية للقراءة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...