Я пытаюсь понять, что attr_accessor
дает мне доступ.Насколько я понимаю, он предоставляет методы получения и установки.Так что attr_accessor :color
это создаст для меня что-то вроде следующего
def color
@color
end
def color=(value)
@color = value
end
Я не понимаю, почему в следующем коде нельзя использовать color=
в моем инициализаторе?(это заканчивается пустым).Почему мне нужно использовать @color=
или self.color=
вместо этого?Разве color=
не должен быть способом вызова метода сеттера, который был только что создан для меня выше?
class Bird
attr_accessor :color
def initialize(c="green")
color = c # this doesn't work
# either one of the following DOES work
# @color = c
# self.color = c
end
end
puts Bird.new.color # prints nothing unless using @color or self.color