Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在类ruby中声明本地方法?_Ruby - Fatal编程技术网

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

有没有办法在类ruby中声明本地方法?,ruby,Ruby,我可以声明实例方法 def method_name ... 我可以声明类方法 def self.method_name ... 但我如何在类中声明内部私有本地方法或不可能声明内部私有本地方法?这样它们就不能像这样被Class.method\u name或Class.new.method\u name访问。您可以声明私有实例方法并添加private关键字。以下每个方法都是私有的: class Foo private def bar #... end end 要创建私有类方

我可以声明实例方法

def method_name ...
我可以声明类方法

def self.method_name ...

但我如何在类中声明内部私有本地方法或不可能声明内部私有本地方法?这样它们就不能像这样被
Class.method\u name
Class.new.method\u name

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

class Foo
  private
  def bar
    #...
  end
end
要创建私有类方法,需要使用
private\u class\u方法
方法:

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

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

class Foo
  private
  def bar
    #...
  end
end
要创建私有类方法,需要使用
private\u class\u方法
方法:

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

你可以使用private关键字, 大概是这样的:

private
   def mehtod_name ...
另一种方式是:

private_class_method :method_name, :other_method_name

你可以使用private关键字, 大概是这样的:

private
   def mehtod_name ...
另一种方式是:

private_class_method :method_name, :other_method_name

…如果您已经将
bar
定义为public(或protected),则可以使用该方法将其私有化:
private(:bar)
private(“bar”)
。此外,由于Ruby 2.0
def
将方法名称作为
符号返回,因此您可以执行
private def bar;结束
私有类方法定义self.bar;结束
…如果您已经将
bar
定义为public(或protected),您可以使用该方法将其私有化:
private(:bar)
private(“bar”)
。另外,由于Ruby 2.0
def
将方法名称作为
符号返回,因此您可以执行
private def bar;结束
私有类方法定义self.bar;结束
。如果您发现其中任何一个答案有用,请不要忘记选择答案。如果您发现其中任何一个答案有用,请不要忘记选择答案。