Jak powiedzieć programowi Ruby, aby odczuwał dowolną ilość czasu przed przejściem do następnego wiersza kodu?
418
Lubię to:
sleep(num_secs)
num_secs
Wartość może być liczbą całkowitą lub pływaka.
Ponadto, jeśli piszesz to w aplikacji Rails lub włączyłeś bibliotekę ActiveSupport do swojego projektu, możesz konstruować dłuższe interwały, używając następującej wygodnej składni:
sleep(4.minutes)
# or, even longer...
sleep(2.hours); sleep(3.days) # etc., etc.
# or shorter
sleep(0.5) # half a second
Uważam, że
until
bardzo przydatny jest sen. przykład:źródło
sleep(10.seconds)
until
można spać, dopóki nie zostanie spełniony jakikolwiek warunek (uwielbiam także naturalną składnię)sleep 6
będzie spał przez 6 sekund. Przez dłuższy czas możesz także użyćsleep(6.minutes)
lubsleep(6.hours)
.źródło
minutes()
ihours()
są to metody liczbowe dodane przez Ruby on Rails - więc nie są standardowo dostępne w Ruby - w klasie ActiveSupport :: Duration. Są jednak dość wygodne.Realizacja sekund / minut / godzin, które są metodami szynowymi. Pamiętaj, że niejawne zwroty nie są potrzebne, ale wyglądają na czystsze, więc wolę je. Nie jestem pewien, czy Railsy mają nawet .dni lub jeśli idzie dalej, ale to są te, których potrzebuję.
Następnie możesz:
sleep 5.seconds
spać przez 5 sekund. Możeszsleep 5.minutes
spać przez 5 minut. Możeszsleep 5.hours
spać przez 5 godzin. I na koniec możeszsleep 5.days
spać przez 5 dni ... Możesz dodać dowolną metodę, która zwraca wartość self * (ilość sekund w tym przedziale czasowym). Jako ćwiczenie spróbuj wdrożyć je przez miesiące!źródło