這是一個我似乎無法解釋的有趣案例。它看起來像私人定員是'私人的',但有時也有例外。定期私有方法似乎表現不同私人setter方法:爲什麼私人制定者的行爲與其他私人方法有所不同?
class TestClass
def do
self.foo = :bar # fine
self.baz # error
end
private
def foo=(other)
@foo = other
end
def baz
end
end
TestClass.new.do
上述代碼設置@foo
就好了,儘管被稱爲上明確self
。然後它不能撥打#baz
,因爲#baz
是一種私人方法。
這是怎麼回事?
通常我會叫'baz'不使用前綴'self',以及應在這種情況下工作。但我意識到這並不能回答你的直接問題。 – moveson