我可能对Ruby中人们如何做这件事有所遗漏。
如果取消'#protected'的注释,我们会得到:
在'what'方法中:调用了Foo类的受保护方法'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”),但目前似乎找不到优雅的方法。