【发布时间】:2011-12-20 14:47:57
【问题描述】:
我一定遗漏了人们在 Ruby 中是如何做到这一点的。
如果 '#protected' 未注释,我们会得到:
在“什么”中:为 Foo:Class (NoMethodError) 调用受保护的方法“zoop”
有没有更好的方法来处理受保护的类方法?
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'),但到目前为止,我似乎找不到一种优雅的方式。
【问题讨论】:
-
是否存在一个基本假设,即类的实例应该比其他对象更亲密地访问类的单例方法?
标签: ruby class methods instance protected