如何在Ruby中初始化对象数组
有人能告诉我如何在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 现在我想初始化一个行数组,
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