私は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メソッドを使用することと、2番目の例のようにインスタンス変数を使用することの間に機能的な違いはありますか?どちらも機能しているようです。それらを混ぜ合わせても機能します:
class Ticket
attr_accessor :venue, :date
def initialize(venue, date)
@venue = venue
self.date = date
end
end