Пожалуйста, смотрите следующий код (взятый из обучения Ruby, книги):Изменение переменной в строку
def timer(start)
puts "Minutes: " + start.to_s
start_time = Time.now
puts start_time.strftime("Start time: %I:%M:%S: %p")
start.downto(1) { |i| sleep 60 }
end_time = Time.now
print end_time.strftime("Elapsed time: %I:%M:%S: %p\n")
end
timer 10
Почему бы там быть необходимо изменить переменную start
в строку на линии ставит? Не мог ли я, например, просто положить puts "Minutes: #{start}"
?
Кроме того, линия start.downto(1)
: Является ли блок {|i| sleep 60}
указанием количества секунд в минуту?
Это требуется только в том случае, если вы хотите видеть время в хорошем формате с «Start time: ...» и т. Д. Перед ним или если вы хотите определенный формат даты/времени. – lurker
Я подозреваю, что вы имеете в виду 'def timer (start)'. Ответ не требуется, поскольку я удалю этот комментарий. –
Вот документация для [Kernel # sleep] (http://ruby-doc.org/core-2.1.0/Kernel.html#method-i-sleep). Заметим, что '{| i | sleep 60} 'можно записать' {sleep 60} ', так как переменная итератора' i' не используется. –