Ruby gets.chomp и разница в $stdin.gets.chomp

filename = ARGV.first 

txt = open(filename)

puts "Here's your file #{filename}:"
print txt.read

print "Type the filename again: "
file_again = $stdin.gets.chomp 

Вот мой вопрос, если я изменю его на gets.chomp это не работает, почему?

txt_again = open(file_again)

print txt_again.read

В чем разница между gets.chomp а также $stdin.chomp

1 ответ

По ядру # получает документы (выделено мое):

Возвращает (и присваивает $_) следующую строку из списка файлов в ARGV (или $*) или из стандартного ввода, если в командной строке нет файлов.

В вашем случае ARGV не пусто, поэтому Kernel#gets относится к этому:

Другие вопросы по тегам