5

「gets.chomp」コマンドを使用してユーザーの応答を待つループを実行しています。これをsleep/timerコマンドとどのように組み合わせることができますか?

例えば。ユーザーが単語を入力するまで1分間待機する必要があります。そうしないと、ループに戻ります。

4

3 に答える 3

5

Ruby のTimeout.

ドキュメントから:

require 'timeout'
status = Timeout::timeout(5) {
  # Something that should be interrupted if it takes too much time...
}
于 2011-06-03T19:54:07.193 に答える
1

上記の Timeout メソッドは、おそらくこの問題を解決する最も洗練された方法だと思います。ほとんどの言語で利用できる別のソリューションは、 を使用することselectです。監視するファイル記述子のリストと、オプションのタイムアウトを渡します。コードはそれほど簡潔ではありません。

ready_fds = select [ $stdin ], [], [], 10
puts ready_fds.first.first.gets unless ready_fds.nil?
于 2011-06-03T20:26:09.017 に答える