[英]Printing out one line of a file in a Ruby script
我正在学习“艰苦学习Ruby”,在练习20中遇到了print_a_line
方法。
input_file = ARGV.first
current_file = open(input_file)
def print_a_line(line_count, f)
puts "#{line_count}, #{f.gets.chomp}"
end
current_line = 1
print_a_line(current_line, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
此方法将获取当前行数,并仅将来自该行的文件内容输出到终端。 我不明白该方法如何知道打印与current_line
关联的文件行。 当我查看此内容时,我会认为#{f.gets.chomp)
将返回文件的全部内容。 该方法如何知道查看current_line
并打印出文件的相关行?
在print_a_line
中调用的gets
方法从文件中读取一行(而不是全部内容)。 该File
被引用的对象current_file
跟踪文件中的当前位置,所以每次gets
调用时,返回下一行。
什么都没有看current_line
确定要读取的行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.