我一定錯過了人們如何在Ruby中這樣做。如何從Ruby中的實例方法訪問受保護的類方法?
如果「#protected」是註釋掉我們得到:在「是什麼」
:保護法「ZOOP」呼籲富:類(NoMethodError)
有沒有更好的方式來處理類方法保護?
class Foo
class << self
#protected
def zoop
"zoop"
end
end
public
def what
"it is '#{self.class.zoop}'"
end
protected
end
a = Foo.new
p a.what # => "it is 'zoop'"
我想ZOOP要保護或私有的(沒有調用「Foo.zoop」),但到目前爲止,我似乎無法找到一個優雅的方式。
是否有一個潛在的假設,一個類的實例應該比其他對象有更親密的訪問類的單例方法? –
確實。並且說得好。 –