Я знаю, що це питання застаріле, але я хотів би показати, що я використовую як свій стандартний метод отримання вхідних даних.
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? "