ruby 使用Enumerable逐行迭代文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 使用Enumerable逐行迭代文件相关的知识,希望对你有一定的参考价值。

module ReadIngredients
  class << self
    include Enumerable

    def each
      while input = gets.chomp
        break if end_of_input?(input)

        yield input
      end
    end

    alias_method :with_object, :each_with_object

    private

    def end_of_input?(input)
      input == 'done'
    end
  end
end

ingredients = ReadIngredients.with_object([]) do |ingredient, ingredients|
  ingredients << ingredient
end
puts ingredients

以上是关于ruby 使用Enumerable逐行迭代文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ruby 逐行读取、编辑和写入文本文件

为啥 Enumerable 在 Ruby 中没有长度属性?

将 Enumerable 转换为 Hash 的 Ruby 库函数

Ruby脚本逐行读取文件并使用puts执行if语句?

ruby 更好的Ruby Enumerable模块

ruby逐行遍历文件