2014-12-10 47 views
5

我正在嘗試編寫一個程序,要求用戶在三秒內使用gets.chomp來回答問題,否則答案將自動返回false。如何超時gets.chomp

我想出除了超時部分以外的所有東西,我想知道是否有人可以請求幫助。

+1

我們展示你的代碼。 – Cthulhu 2014-12-10 23:36:47

+1

看看[Timeout](http://www.ruby-doc.org/stdlib-2.1.5/libdoc/timeout/rdoc/Timeout.html)。 – 2014-12-10 23:39:07

回答

-4

我爲此寫了一些代碼。

def question_time 
    puts "Your question here" 
    t = Time.now 
    answer = gets.chomp 
    Time.now - t > 3 ? false : answer 
end 
+0

問題是'gets'將無限期阻塞,所以如果用戶什麼都不做,程序將永遠不會結束。 – Carpetsmoker 2014-12-12 11:39:32

+0

這個答案是錯誤的。我建議刪除它。它完全忽略了問題的核心,除此之外,我不知道如何以及何時該代碼應該有用。 如果用戶在3秒內沒有應答,程序會自動返回false,但此代碼將等待(永遠),直到用戶給出輸入爲止,因爲'gets'會阻止執行。 – 2016-01-07 14:37:24