我知道在Ruby中,attr_accessor
键只是创建getter/setter
方法。例如,
attr_accessor :data
def data=(value)
@data = value
end
def data
@data
end
那么,如果是这种情况,对于Node
类,我为什么需要创建一个initialize
方法呢?
例如:
def initialize(data, next_node)
@data = data;
@next_node = next_node;
我就不能写att_accessor :data, next_node
吗?
使用initialize
方法,您可以编写:
node = Node.new('foo', node)
如果没有(并且只有attr_accessor
),您需要编写:
node = Node.new
node.data = 'foo'
node.next_node = node
回答您的问题:不需要initialize
方法,但使用起来会更方便。