据我所知,您可以使用sleep(2),它在代码显示之前暂停x时间,但我希望它能够执行并逐行显示代码。例如:
x = 1
y = 2
puts x + y #I want this line to show first
sleep(5) #Above line shows but waiting 5 seconds before showing below
puts x + y * 2 #After 5 seconds this line shows
sleep(10) #After 10 seconds etc
puts (x + y) * 2
这在C编程中很有用,但不适用于Ruby。
答案 0 :(得分:0)
这是一个缓冲问题。在使用$stdout.sync = true
之前尝试添加puts
。 Setting sync to true disables buffering.
x = 1
y = 2
$stdout.sync = true
puts x + y
sleep(5)
puts x + y * 2
sleep(10)
puts (x + y) * 2
或者,您每次都可以手动刷新stdout
:
x = 1
y = 2
puts x + y
$stdout.flush
sleep(5)
puts x + y * 2
$stdout.flush
sleep(10)
puts (x + y) * 2
$stdout.flush
For more info on Ruby buffering, check out this well-done answer.