簡體   English   中英

如何使用Ruby在將每個字符打印成字符串之前進行延遲

[英]How to make delay before each character is printed in a string using Ruby

有誰知道如何在Ruby中在字符串中的每個字符打印之間創建一個小的延遲(可能為0.1秒)?

我嘗試了其他方法(如下所示); 但是,我確定存在一個更簡單的方法,因為im使用的方法很耗時間(和空間):

#ugly/boring method vvv

print "h"
sleep 0.1
print "e"
sleep 0.1
print "l"
sleep 0.1
print "l"
sleep 0.1
print "o"

我已經對該主題進行了一些研究,並發現了在C和php下的一種方法,但是似乎沒人能找到Ruby的答案。

先謝謝您的幫助。

"hello".each_char do |c|
  sleep 0.1
  print c
end

文件: String#each_char

您還可以猴子修補字符串類:

class String
  def print_slowly
    self.each_char do |c|
      sleep 0.1
      print c
    end
  end
end

#usage
"hello".print_slowly

一個超級簡單的方法是這樣的:

"hello".split(//).each do |c|
  sleep 0.1 
  print c
end

這是更詳細的解釋:

string = "hello"
split_that_string = string.split(//);

for character in split_that_string
   sleep 0.1
   print character
end

您也可以為此創建一個方法:

def print_a_string_one_character_at_a_time(string)
  array_of_characters = string.split(//);
  for character in array_of_characters
    sleep 0.1
    print character
  end
end 

然后您可以將任何字符串傳遞給該方法。 這是一個例子:

print_a_string_one_character_at_a_time("Hello, World!")

這將輸入Hello,World! 一次一個字符(並返回字符數組)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM