ruby - 只是为了好玩,我如何编写一个 ruby​​ 程序,一次缓慢地打印到 stdout 一个字符?

标签 ruby stdout

我认为这可能有效

 "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 秒。但是整个字符串是一次打印出来的。

最佳答案

两件事:

  1. 您需要使用.each_char 来遍历字符。在 Ruby 1.8 中,String.each 将逐行进行。在 Ruby 1.9 中,String.each 已弃用。
  2. 如果您希望字符立即出现,您应该手动刷新 $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/

相关文章:

ruby - Ruby 中的有限矩阵

ruby - capybara ::dsl::模块的未定义方法 'delegate'

c# - 某些 Python 命令未在 Stdout 中捕获

python - 如何用 stdin stdout 替换命令行参数 sys.argv?

Python:在个人标准输出上编辑文本 - 双倍文本

arrays - 按索引映射两个数组

ruby-on-rails - 数据库错误 :Migrate "uninitialized constant DeviseCreateUsers"

Ruby Hash 其键是对象的函数?

c - 在可移植 C 中将标准输出移出控制台

python - 如何增加写入python文件的行数