【发布时间】:2016-08-20 02:20:44
【问题描述】:
我想编写一个返回枚举器的方法(类似于File::foreach 返回的那个),它连续返回文件的每一行,但是被chomped 了。我的第一种方法是
def chomped_lines(filename)
File.foreach(filename).map(&:chomp).each
end
并将其用作
my_enum = chomped_lines('my_file.txt')
....
my_enum.each { |line| .... }
我想,Enumerator::lazy 可以在这里以某种方式使用,但无论如何,代码应该在 Ruby 1.9.3 上运行,这意味着我还没有惰性枚举器。
编写这样一个枚举器的好方法是什么?
这似乎行得通,但是如果我理解这一点是正确的(如果我错了请纠正我),文件将作为一个整体进入内存,以便应用map。
【问题讨论】:
标签: ruby