我有這樣一段代碼:如何在獲取Ruby之後覆蓋當前控制檯行?
def wait_for_input regex
print "> ".red
someInput = gets
while (regex =~ someInput).is_a? NilClass do
print "\r> ".red
someInput = gets
STDOUT.flush
end
someInput
end
回車應該覆蓋在控制檯當前行,但反而不和,在新線「>」去。
我試圖從字符串(庫colorize
)去除顏色,沒有運氣寫$stdout.flush
或STDOUT.flush
following this topic。
然後我意識到如果刪除gets
指令它的工作原理。
如何在gets
之後覆蓋當前行?
'.is_a? NilClass' - 爲什麼?只有一個'NilClass'實例,那就是'nil'。如果你想明確表達 - 你不必使用'== nil'或'.nil?'。 – cremno
@cremno因爲根據2.2.0的文檔(http://ruby-doc.org/core-2.2.0/Regexp.html),'=〜'操作符返回nil ...所以使用'.nil ?'會檢查它,謝謝。 – Nomid