如何在Ruby中初始化对象数组

如何在Ruby中初始化对象数组,ruby,Ruby,有人能告诉我如何在Ruby中初始化对象数组吗。我有我的班级路线: class Line @@text @@number = 0 @@file = 0 @@paired def initialize(text, number, file = 0, paired = 1) @@text = text @@number = number @@file = file @@paired = paired end end 现在我想初始化一个行数组,

有人能告诉我如何在Ruby中初始化对象数组吗。我有我的班级路线:

class Line
  @@text
  @@number = 0
  @@file = 0
  @@paired

  def initialize(text, number, file = 0, paired = 1)
    @@text = text
    @@number = number
    @@file = file
    @@paired = paired
  end
end
现在我想初始化一个行数组,当我这样做的时候
parsedLines=Array.new()
loop do parsedLines[i]=Line.new(行、编号、文件、0)

我得到了一个行数组,但数组元素是在最后一个生成的行对象上初始化的,我如何解决这个问题,以拥有行对象数组?

这就是
@
所做的。它定义了一个类级变量,由类的所有实例共享。每次声明一个新实例时,都会覆盖这些值,因此整个数组将显示为包含同一个对象

初始化
方法中将
@
更改为
@
,并完全删除类级别的
@
变量,它们没有任何作用。您不需要在Ruby中以这种方式声明变量

正确的实施方式是:

class Line
  def initialize(text, number = 0, file = 0, paired = 1)
    @text = text
    @number = number
    @file = file
    @paired = paired
  end
end