我认为这可能有效
"a b c d e f g h i j k".each {|c| putc c ; sleep 0.25}
我希望看到“a b c d e f j”一次打印一个字符,每个字符之间间隔 0.25 秒。但是整个字符串是一次打印出来的。
最佳答案
两件事:
- 您需要使用
.each_char
来遍历字符。在 Ruby 1.8 中,String.each
将逐行进行。在 Ruby 1.9 中,String.each
已弃用。 - 如果您希望字符立即出现,您应该手动刷新
$stdout
。否则,它们往往会被缓冲,以便字符在最后一次出现。
.
#!/usr/bin/env ruby
"a b c d d e f g h i j k".each_char {|c| putc c ; sleep 0.25; $stdout.flush }
关于ruby - 只是为了好玩,我如何编写一个 ruby 程序,一次缓慢地打印到 stdout 一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4928625/