我正在阅读一本关于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
class Ticket attr_accessor :venue, :date def initialize(venue, date) @venue = venue self.date = date end end
因为setter方法是由 attr_accessor
attr_accessor
使用setter方法的唯一好处是,如果您以后应该更改setter方法来做一些比设置变量更多的事情(比如验证输入或记录一些事情),那么 initialize
initialize