当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby ARGF.each用法及代码示例


本文简要介绍ruby语言中 ARGF.each 的用法。

用法

each(sep=$/) {|line| block } → ARGF
each(sep=$/, limit) {|line| block } → ARGF
each(...) → an_enumerator
也别名为:each_line

返回一个枚举器,它遍历 ARGV 中每个文件的每一行(由 sep 分隔,默认为平台的换行符)。如果提供了一个块,则每一行将依次生成给该块,否则返回一个枚举器。可选的limit 参数是一个Integer,指定每行的最大长度;较长的行将根据此限制进行拆分。

此方法允许您将命令行上提供的文件视为由每个命名文件的串联组成的单个文件。返回第一个文件的最后一行后,返回第二个文件的第一行。 ARGF.filenameARGF.lineno 方法可用于分别确定当前行的文件名和整个输入的行号。

例如,以下代码打印出每个命名文件的每一行,并以其行号为前缀,每个文件显示一次文件名:

ARGF.each_line do |line|
  puts ARGF.filename if ARGF.file.lineno == 1
  puts "#{ARGF.file.lineno}: #{line}"
end

而下面的代码一开始只打印第一个文件的名称,并通过所有命名文件计算带有行号的内容。

ARGF.each_line do |line|
  puts ARGF.filename if ARGF.lineno == 1
  puts "#{ARGF.lineno}: #{line}"
end

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 ARGF.each。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。