在Ruby 2.0中不推荐使用IO#行;我该如何逐行迭代?

时间:2013-03-17 21:58:15

标签: ruby ruby-2.0

我的Ruby 1.9.3代码打开一个文件并检查每一行是否存在某个字符串:

if File.open('Gemfile').lines.any?{|line| line.include?('pg')}
  puts "found 'pg'"
end

Ruby 2.0.0给了我一个警告:

  

警告:不推荐使用IO#行;请改用#each_line

在Ruby 2.0.0中实现此功能的最有效方法是什么?

1 个答案:

答案 0 :(得分:3)

在ruby 2.0 IO#each_line中可以返回一个枚举器。因此,lineseach_line替换each应该与当前代码完全相同。

if File.open('Gemfile').each {|line| line.include?('pg')}
  puts "found 'pg'"
end