1
假設我有一個一流的,我定義一個attr_accessor
像這樣:使用私有attr_accessor時,爲什麼self.attribute =工作,但self.attribute不?
private
attr_accessor :attribute
我明白了爲什麼使用self.attribute
閱讀方法不起作用 - 在Ruby中,你不能調用私有方法上明確的接收器。
我很困惑的是爲什麼這個規則不適用於作家?爲什麼我可以撥打self.attribute = 1
,並且不會引發任何訪問衝突錯誤?
沒有真正做任何研究,我猜想這是因爲需要'self.'來區分它分配一個局部變量。 –
是的,我認爲它必須這樣做,因爲這一點。我想我很懷疑是否它是一個特殊情況來防止這種模糊的調用,或者是否有關於我不明白的允許它的對象模型。 –
[爲什麼Ruby不允許我將自己指定爲私有方法中的接收方?](https://stackoverflow.com/questions/10811986/why-wont-ruby-allow-me-to-specify自己作爲一個接收者在一個私人的方法) –