我正在阅读一本关于 Ruby 的书,作者在编写类初始化定义时使用的形式与他在本书前几节中使用的形式略有不同。它看起来像这样:
class Ticket
attr_accessor :venue, :date
def initialize(venue, date)
self.venue = venue
self.date = date
end
end
在本书的前几节中,它的定义如下:
class Ticket
attr_accessor :venue, :date
def initialize(venue, date)
@venue = venue
@date = date
end
end
在第一个示例中使用 setter 方法与在第二个示例中使用实例变量之间是否有任何功能差异?它们似乎都有效。即使将它们混合在一起也可以:
class Ticket
attr_accessor :venue, :date
def initialize(venue, date)
@venue = venue
self.date = date
end
end