file.each_char在 Ruby 中file.each_line后立即无法正常工作



我试图在file.each_line后立即执行file.each_char,但是当它像这样时,它永远不会被调用。如果我摆脱了file.each_linefile.each_char调用可以完美运行。

这是我的代码供参考:

file.each_line do |line|
  if line =~ /^s*$/
    next
  end
  lines += 1
end
file.each_char do |char|
  if char =~ /s/
    next
  end
  chars += 1
end

如何在file.each_line后立即管理file.each_char呼叫?

当你运行 each_line 时,它会让它指向 IO 流的末尾(在本例中为文件)。若要再次循环访问整个文件,需要将其重置为指向流的开头。 IO#rewind将为您执行此操作:

file.each_line do |line|
  if line =~ /^s*$/
    next
  end
  lines += 1
end
file.rewind
file.each_char do |char|
  if char =~ /s/
    next
  end
  chars += 1
end

相关内容

  • 没有找到相关文章

最新更新