有没有办法在类中声明本地方法,ruby?

时间:2015-08-05 22:01:37

标签: ruby

我可以声明实例方法

def method_name ...

我可以声明类方法

def self.method_name ...

但是我如何在课堂上声明内部私有本地方法或者不可能?因此,无法像Class.method_nameClass.new.method_name

那样访问它们

3 个答案:

答案 0 :(得分:5)

您可以声明私有实例方法添加private关键字。下面的每个方法都是私有的:

class Foo
  private
  def bar
    #...
  end
end

要创建私有类方法,您需要private_class_method方法:

class Foo
  def self.bar
    #...
  end
  private_class_method :bar
end

答案 1 :(得分:3)

class Test

  private_class_method :greet
  def self.greet
    print "Hello"
  end

end

Test.greet  # Error

答案 2 :(得分:2)

你可以使用私人关键字, 像这样的东西:

private
   def mehtod_name ...

和其他方式是:

private_class_method :method_name, :other_method_name