Я работаю над книгой по 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