Akzeptieren Benutzereingaben mit Gets in Ruby

Akzeptieren Benutzereingaben mit Gets in Ruby

Beim Erstellen einer Befehlszeilenanwendung (CLI) in Ruby ist eine allgemeine Funktion das Empfangen von Eingaben von Benutzern, einschließlich des Benutzernamens oder einer Ja/Nein-Antwort. Hier ist das Schlüsselwort gets nützlich.

Dieses Tutorial zeigt, wie Sie ein sehr einfaches CLI-Programm erstellen, mit dem Benutzer ihre Namen eingeben und sie mit dem eingegebenen Namen begrüßen können.

Beispielcode:

puts "Hi, welcome to my app."
puts "Enter your name to get started: "
name = gets
puts "Hello #{name}, nice to have you here"

Ausgabe:

Hi, welcome to my app.
Enter your name to get started:

Oben ist die Ausgabe, die ich nach dem Ausführen des Codes bekomme. An diesem Punkt fordert mich das Programm auf, meinen Namen einzugeben. Das macht gets; Es erstellt eine Eingabeaufforderung und wartet auf Benutzereingaben.

Unten ist die vollständige Ausgabe, die ich bekomme, nachdem ich meinen Namen als John eingegeben und die Enter-Taste gedrückt habe.

Hi, welcome to my app.
Enter your name to get started:
John
Hello John
, nice to have you here

Sie müssen in der obigen Ausgabe etwas Seltsames bemerkt haben. Warum brach die Begrüßung Hello John, nice to have you here nach John? Um zu verstehen, was wirklich passiert, untersuchen Sie die Variable name.

Beispielcode:

puts "Hi, welcome to my app."
puts "Enter your name to get started: "
name = gets
puts name.inspect
puts "Hello #{name}, nice to have you here"

Ausgabe:

Hi, welcome to my app.
Enter your name to get started:
John
"John\n"
Hello John
, nice to have you here

Oben ist die vollständige Ausgabe, die ich bekomme, nachdem ich John als meinen Namen eingegeben habe. Sie können sehen, dass die Variable name als John\n angezeigt wird.

So verhält sich gets; es hängt automatisch \n an jeden Wert an, den es als Benutzereingabe erhält, dies wird als Zeilenumbruchzeichen bezeichnet, und wann immer es in einem Text erscheint, bedeutet dies, dass der Text an dieser Stelle umbrechen und in einer neuen Zeile fortgesetzt werden soll.

Eine gute Möglichkeit, dies zu beheben, ist die Verwendung der Methode chomp, die alle nachgestellten Sonderzeichen entfernt, nicht nur das Zeilenumbruchzeichen (\n), sondern auch das Wagenrücklaufzeichen (\r). Sie können hier mehr darüber lesen, wie chomp funktioniert.

Beispielcode:

puts "Hi, welcome to my app."
puts "Enter your name to get started: "
name = gets.chomp
puts "Hello #{name}, nice to have you here"

Ausgabe:

Hi, welcome to my app.
Enter your name to get started:
John
Hello John, nice to have you here