节点类中的Attr_accessor



我知道在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方法,但使用起来会更方便。

相关内容

  • 没有找到相关文章

最新更新