繁体   English   中英

在Ruby脚本中打印出文件的一行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM