Я просто учился программировать и решил попробовать Ruby. Я уверен, что это глупый вопрос, но инструктор говорит о методах сеттера и геттера, и я в замешательстве. Вот пример:Попытка узнать/понять методы Ruby setter и getter
class Human
def noise=(noise)
@noise = noise
end
def noise
@noise
end
end
Исходя из этого, создается экземпляр класса, и я могу ставит это:
man = Human.new
man.noise=("Howdie!")
puts man.noise
Это приводит к Howdie!
Теперь то, что меня смущает, что инструктор говорит без метода getter (второй из двух методов), нет способа взаимодействовать с переменной экземпляра @noise.
Но когда я удалить геттер, я могу получить доступ @noise, смотри пример:
class Human
def noise=(noise)
@noise = noise
end
end
man = Human.new
puts man.noise=("Howdie!")
Это работает так же, как при использовании метода геттер он используется.
Итак, теперь я в замешательстве. Почему нужен геттер? Что означает инструктор, не имея возможности получить доступ к переменной экземпляра без нее? Возможно ли, что он использует более старую версию Ruby?
Заранее за вашу помощь.
Вы действительно можете получить доступ к @noise, или это то, что вы видите побочный эффект функции, которую вы вызываете ... – LVB