Ruby - 读取文件中的每一行作为对象并将对象添加到数组中

5
我很新于Ruby,想要读取文件的每一行。我希望使用每一行创建一个名为LineAnalyzer的对象,并将该对象添加到一个名为analyzers的数组中。
我尝试的代码是:
Class Solution 
    attr_reader :analyzers;

    def initialize()
      @analyzers = Array[];
    end

    def analyze_file()
      count = 0;

      f = File.open('test.txt')

      #* Create an array of LineAnalyzers for each line in the file

      f.each_line { |line| la = LineAnalyzer.new(line, count) }
          @analyzers.push la;
          count += 1;   
      end
    end
end

任何帮助或建议将不胜感激!

Array[] 不是您想要的。 [] 就足够了。按照惯例,方法中的空参数列表也会被省略,因此它只是 initialize - tadman
1个回答

4

如果我理解正确,这应该是可行的:

class Solution 
    attr_reader :analyzers

    def initialize()
      @analyzers = []
    end

    def analyze_file()
      count = 0;
      File.open('test.txt').each_line do |line| 
          la = LineAnalyzer.new(line, count) 
          @analyzers.push la
          count += 1
      end
    end
end

稍微偏离问题,但请注意,在大多数情况下,Ruby中不需要使用;。 Ruby很好,所以它不会抱怨,但最好遵循标准约定。


值得一提的是 ; 仅在折叠多行时才是必要的,有时候对于像 x.each { |y| y.do_thing; y.do_other } 这样的事情非常方便。除非你正在这样做,否则它们不应该存在,尽管它们在其他情况下会被忽略。 - tadman
真的。这正是我在Ruby中使用;的情况。 - Harsh Trivedi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接