我认为这可行
"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 }