Answers:
您需要使用打印而不是认沽权。另外,如果您希望点平滑显示,则需要在每次打印后刷新标准输出缓冲区。
def print_and_flush(str)
print str
$stdout.flush
end
100.times do
print_and_flush "."
sleep 1
end
编辑:我只是调查冲洗背后的原因来回答@rubyprince的评论,并意识到可以通过简单地使用$stdout.sync = true
... 来清理一点...
$stdout.sync = true
100.times do
print "."
sleep 1
end
print
单独使用它时,它可能会成块出现,因为它可以存储在缓冲区中,而不是立即写入(我不知道为什么)。它也可能是特定于OS的。
sync
为输出一个字符串是过大的。然后,如果您的应用输出很多,则速度会变慢。
$stdout.flush
?真正需要的..我使用Ruby 1.8.7和我做的事情只是print
和我没有问题..