3
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

4

1 回答 1

1

根据Kernel#gets 文档(强调我的):

从 ARGV(或 $*)中的文件列表中返回(并分配给 $_)下一行,如果命令行上没有文件,则从标准输入中返回。

在您的情况下, ARGV 是非空的,因此Kernel#gets适用于它:

于 2014-12-10T14:19:03.257 回答