Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between gets.chomp() vs. STDIN.gets.chomp()?

Tags:

ruby

Are they the same, or are there subtle differences between the two commands?

like image 325
stanigator Avatar asked May 09 '12 20:05

stanigator


2 Answers

gets will use Kernel#gets, which first tries to read the contents of files passed in through ARGV. If there are no files in ARGV, it will use standard input instead (at which point it's the same as STDIN.gets.

Note: As echristopherson pointed out, Kernel#gets will actually fall back to $stdin, not STDIN. However, unless you assign $stdin to a different input stream, it will be identical to STDIN by default.

http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-gets

like image 101
Dylan Markow Avatar answered Oct 10 '22 20:10

Dylan Markow


gets.chomp() = read ARGV first

STDIN.gets.chomp() = read user's input

like image 39
Rick Lien Avatar answered Oct 10 '22 21:10

Rick Lien