为什么private
仅适用于实例方法,而不适用于类方法?不仅如此,为什么private_class_method
方法使类方法变为私有方法?Ruby中的private和private_class_method关键字
class Foo
private
def self.private_class_method
puts 'hello from private_class_method'
end
def private_instace_method
puts 'hello from private_instace_method'
end
end
Foo.private_class_method #Ok!
Foo.new.private_instace_method #error: private method `private_instace_method' called for #<Foo:0x000001020873b8>
这个怎么样?
class Foo
private_class_method :private_class_method
def self.private_class_method
puts 'hello from private_class_method'
end
private
def private_instace_method
puts 'hello from private_instace_method'
end
end
Foo.private_class_method #Ok!
Foo.new.private_instace_method #error: private method `private_instace_method' called for #<Foo:0x000001020873b8>
如何使类方法为私有?
[如何访问Ruby中的私有类方法?](http://stackoverflow.com/questions/27859296/how-to-access-private-class-methods-in-ruby) – Severin 2015-02-08 07:43:42
此外,你应该考虑'private_class_method'方法名与'private_class_method'类方法相交http://ruby-doc.org/core-1.9.3/Module.html#method-i-private_class_method – freemanoid 2015-02-08 09:24:40