回答:
putの代わりにprintを使用する必要があります。また、ドットをスムーズに表示したい場合は、印刷するたびにstdoutバッファーをフラッシュする必要があります...
def print_and_flush(str)
print str
$stdout.flush
end
100.times do
print_and_flush "."
sleep 1
end
編集:私は@rubyprinceのコメントに答えるためにflushの背後にある理由を調べていたところ、これを単に使用することで少しクリーンアップできることに気付きました$stdout.sync = true
...
$stdout.sync = true
100.times do
print "."
sleep 1
end
print
単独で使用すると、すぐに書き込まれるのではなくバッファーに格納できるため、ブロックで出力される可能性があります(理由は正確にはわかりません)。OS固有の場合もあります。
sync
は、1つの文字列を出力するのはやり過ぎだと思います。次に、アプリが大量に出力する場合は遅くなります。
$stdout.flush
?本当に必要..私は、Ruby 1.8.7を使用していると私はちょうどで物事を行っているprint
...と私は何の問題もなかった