Ruby: Was ist der Unterschied zwischen STDIN.gets() und ruft.chomp()?
Was ist der Unterschied zwischen STDIN.gets()
und gets.chomp()
in Ruby? Sind Sie nicht beide das abrufen von raw-Eingabe durch den Benutzer?
Seite Frage: Wenn ich will wandeln die Eingabe in eine Ganzzahl, mache ich
myNumb = Integer(STDIN.gets())
und
myNumb = Integer(gets.chomp())
- Warum sind Sie zu vergleichen mit chomp und die andere ohne?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfachste Weg, das zu tun, was Sie hier beschreiben ist
Integer(gets)
, daInteger()
ignoriert die trailing newline, sochomp
ist unnötig. Es gibt auch keine Notwendigkeit, explizit angebenSTDIN
als Empfänger, wie das ist, was Kernel#gets tun, wenn es keine Argumente an das Skript.gets
ist eigentlich Kernel#gets. Es liest aus Dateien, die als Argumente übergeben wurden oder, wenn keine Argumente vorhanden sind, liest von der Standardeingabe. Wenn Sie wollen, nur Lesen von der Standardeingabe, dann sollten Sie noch deutlicher, es.Als für die Konvertierung, die ich normalerweise verwenden String#to_i. Es handhabt Zeilenumbrüche in Ordnung.
to_i
undInteger()
sind sehr unterschiedlich. Persönlich habe ich eher mit einer Ausnahme, als ein random 0.weil
wenn es Sachen in der ARGV, der Standard wird die Methode versucht zu behandeln, die zunächst einmal als eine Datei und Lesen
aus dass. Zum Lesen von der Eingabe des Benutzers (dh, stdin) in einer solchen situation, haben Sie zu verwenden
es STDIN.wird explizit.