我有这样一段代码:如何在获取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