我需要遍历文件中的每一行。但是,在我读完一行之后,我需要向前看下一行并可能采取一些行动。
如果我使用该peek
命令,那么我只会得到文件的第二行。但是,如果我使用next
命令移动迭代器,它也会增加.each
迭代器。要了解我的意思,请运行下面的 9 行程序并查看输出。如果您将第 7 行注释掉,则将打印整个文件,但peek
会出错。如果您不加注释第 7 行,则 peek 有效,但您只能打印一半文件。
我需要一种只增加一次的方法,或者我需要一种不使用.each
.
做这个的最好方式是什么?
#!/usr/bin/ruby
#1
curFile = File.open("testcase.rb") #2
line_enum = curFile.to_enum #3
curFile.each do |line| #4
puts "=> " + line #5
puts " peek > " + line_enum.peek #6
line_enum.next #7
end #8