我目前正在学习ruby,我不知道我做错了什么还是编译器在做,但是这段代码:
puts "Name?"
name = gets
puts "Welcome " + name
输出:
#blank line waiting for input, if gotten input
Prints input, Name? And Welcome Name
我希望它做类似python的input(“ Name?”)
您可以编写自己的Python等效input
方法:
def input(prompt)
print(prompt) # Output prompt
$stdout.flush # Flush stdout buffers to ensure prompt appears
gets.chomp # Get user input, remove final newline with chomp
end
现在我们可以尝试:
name = input('What is your name? ')
puts "Welcome #{name}"
我们需要在flush
方法中调用input
的原因是,除非字符串包含换行符,否则Ruby不会自动刷新操作系统缓冲区,并且直到从别的地方。因此,为了强制显示提示而不显示换行符,我们调用flush
。
请参阅此处的文档以获取更多信息:
IO.flush
IO.flush