Я знаю, что этот вопрос старый, но я хотел показать, что я использую в качестве стандартного метода для получения ввода.
require 'readline'
def input(prompt="", newline=false)
prompt += "\n" if newline
Readline.readline(prompt, true).squeeze(" ").strip
end
Это действительно хорошо, потому что, если пользователь добавляет странные пробелы в конце или в начале, он удалит их и сохранит историю того, что они ввели в прошлом (Измените true
на false
чтобы он этого не делал.) И, если ARGV
не пусто, то gets
будет пытаться читать из файла в ARGV
вместо получения ввода. Кроме того, Readline
является частью стандартной библиотеки Ruby, поэтому вам не нужно устанавливать какие-либо гемы. Кроме того, вы не можете перемещать курсор при использовании gets
, но вы можете с помощью Readline
.
И я знаю, что метод не одна строка, но это когда вы вызываете его
name = input "What is your name? "