1

为什么File.each有效但File.readline无效?

File.open('store-sample','r') do |f|

  f.readline("\n\n\n\n") do |l|
    binding.pry

  end
end

该代码不会中断,但以下代码有效:

File.open('store-sample','r').each("\n\n\n\n") do |l|
  binding.pry
end

我不知道这两个方法的内部实现,但是这种奇怪的行为真的让我抓狂。

4

2 回答 2

3

readline不占用块;它返回一个值。

line = f.readline('\n\n\n\n')
# do something with line
于 2013-10-13T13:05:51.817 回答
1

你为什么不使用File.foreach?它旨在一次返回一行。

于 2013-10-13T23:57:15.840 回答