Ich weiß, dass diese Frage alt ist, aber ich würde zeigen, was ich als Standardmethode für die Eingabe verwende.
require 'readline'
def input(prompt="", newline=false)
prompt += "\n" if newline
Readline.readline(prompt, true).squeeze(" ").strip
end
Das ist wirklich schön, denn wenn der Benutzer am Ende oder am Anfang seltsame Leerzeichen hinzufügt, werden diese entfernt, und es wird ein Verlauf dessen gespeichert, was sie in der Vergangenheit eingegeben haben (Ändern Sie das true
in false
, damit es das nicht tut.). Und wenn ARGV
es nicht leer ist, gets
wird versucht, aus einer Datei einzulesen ARGV
, anstatt Eingaben zu erhalten. Außerdem Readline
ist es Teil der Ruby-Standardbibliothek, sodass Sie keine Edelsteine installieren müssen. Außerdem können Sie den Cursor bei der Verwendung nicht bewegen gets
, aber Sie können mit Readline
.
Und ich weiß, dass die Methode nicht eine Zeile ist, sondern wenn Sie sie aufrufen
name = input "What is your name? "