我刚开始学习编程,决定尝试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交互。
但是当我删除getter方法时,仍然可以访问@noise,参见下面的示例:
class Human
def noise=(noise)
@noise = noise
end
end
man = Human.new
puts man.noise=("Howdie!")
这与使用getter方法时相同。
所以现在我有点困惑。为什么需要getter?教练说的没有使用它无法访问实例变量是什么意思?他可能在使用旧版Ruby吗?
非常感谢您的帮助。