【发布时间】:2016-11-06 10:45:03
【问题描述】:
给定以下代码:
class Man
def self.noise=(noise)
@@noise = noise
end
end
puts Man.noise = ("YO")
我使用了 setter 方法 self.noise,但实际上并没有使用 getter 方法并且它有效。我很想知道类变量是否需要 getter 和 setter 方法才能工作?
所有这些中令人困惑的元素是实例变量似乎需要同时访问 getter 和 setter 方法。如果您只有一个 setter 方法来访问实例变量,那么如果您调用 setter 方法,该变量将不会被返回。
我的问题是,对于类变量,你可以只有一个setter方法并调用它,而没有getter方法来访问类变量吗?在这种情况下,getter 方法是:
self.noise
@@noise
end
【问题讨论】:
-
stackoverflow.com/questions/8737421/… - 问基本相同的问题,但关于实例变量 - 是否有助于澄清事情?特别是回答stackoverflow.com/a/8737438/117424 可能会有所帮助。
-
我完全明白实例变量需要同时使用getter和setter方法,想知道类变量也是一样的。是否有必要同时拥有两者才能使程序正常工作。
标签: ruby