更改变量转换为字符串
问题描述:
请参见下面的代码(从学习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}
块指定每分钟应该有多少秒?
答
是的,你也可以说:
puts "Mintues: #{start}"
它的许多不错的红宝石的选择之一。 :)在这种情况下,它没有太大的区别。
关于循环:
start.downto(1) { |i| sleep 60 }
没错,这就是计数分钟下降到1
,每次在睡觉60秒。所以它会睡start
分钟。如果start
不是太大,您可以使用sleep 60*start
。
只有当您希望以“开始时间:...”等格式查看时间时,或者您希望使用特定的日期/时间格式时才需要。 – lurker
我怀疑你的意思是'定时器(开始)'。回复不需要,因为我将删除此评论。 –
这里是[Kernel#sleep](http://ruby-doc.org/core-2.1.0/Kernel.html#method-i-sleep)的文档。请注意'{| i | sleep 60}'可以写成'{sleep 60}',因为没有使用迭代器变量'i'。 –