class Foo def self.bar() puts("bar") end private_class_method :bar def self.foo() self.bar() end end
鉴于上述例子,为什么:
> Foo.foo() NoMethodError: private method `bar' called for Foo:Class
而不是:
> Foo.foo() => bar
Thing.helper(...) 等等。。。我更希望内部方法的作用域是私有的,这样至少有人必须特意直接调用它们。有没有办法达到我想要的?
Thing.helper(...)
Java等价物:
class Foo { private static void bar() { System.out.println("bar"); } public static void foo() { bar(); } }
因为你试图用显式接收器调用你的私有方法, self . 试着简单一点
self
def self.foo bar end