Ruby保留类方法名

Ruby保留类方法名,ruby,Ruby,在Ruby中,有没有保留或具有默认含义的方法?我最近发现,initialize就是其中之一。在命名我的方法时,是否还有其他方法需要注意?(VI没有给我其他ide为保留名称提供的着色线索。) 特别是在其他语言中有意义的名称,如run、main、toString、onExit,等等。您总能看到默认情况下为每个类实现的方法列表: class Try end t = Try.new puts t.methods.sort 编辑:实际上,您可能还想查看私有方法(其中initializeis): 您始终

在Ruby中,有没有保留或具有默认含义的方法?我最近发现,
initialize
就是其中之一。在命名我的方法时,是否还有其他方法需要注意?(VI没有给我其他ide为保留名称提供的着色线索。)


特别是在其他语言中有意义的名称,如
run
main
toString
onExit
,等等。

您总能看到默认情况下为每个类实现的方法列表:

class Try
end

t = Try.new
puts t.methods.sort
编辑:实际上,您可能还想查看私有方法(其中
initialize
is):


您始终可以看到默认情况下为每个类实现的方法列表:

class Try
end

t = Try.new
puts t.methods.sort
编辑:实际上,您可能还想查看私有方法(其中
initialize
is):


还可以查看reserver关键字列表


如果您在Rails中工作,您可能还想查看一下

并查看reserver关键字列表


如果您在Rails中工作,您可能还需要了解以下内容:


您应该注意以下几点:


尽管没有任何东西阻止声明像
public
private
这样的方法,但我强烈建议不要使用在核心类中定义的任何方法名称,例如
Object
Module
。否则会发生奇怪的事情:

class Message
  def self.private
    puts 'private'
  end

  private
end

Message.private
输出:

私人的 私人的


Module
的私有类方法被重新定义为public。

尽管没有任何东西阻止声明像
public
Private
这样的方法,但我强烈建议不要使用在核心类中定义的任何方法名称,例如
Object
Module
。否则会发生奇怪的事情:

class Message
  def self.private
    puts 'private'
  end

  private
end

Message.private
输出:

私人的 私人的


模块的私有类方法被重新定义为public。

这并不是那么简单:)基本上你可以重写Ruby中的每个方法,但你不应该重写,除非你知道你在做什么(即元编程)。t.methods没有返回任何东西,但我假设如果我在类中添加任何东西,它会返回任何东西。t、 然而,私有方法的信息量很大。谢谢@jbr意外重写正是我试图避免的。@jbr当然可以。你几乎可以在ruby中做任何事情,但从我得到的问题来看,OP想要一个已经存在的方法列表。它不是那么简单:)基本上你可以覆盖ruby中的每个方法,但你不应该,除非你知道你在做什么(即元编程).t.methods没有返回任何内容,但我认为如果我向类中添加任何内容,就会返回任何内容。t、 然而,私有方法的信息量很大。谢谢@jbr意外重写正是我试图避免的。@jbr当然可以。在ruby中,你几乎可以做任何事情,但是从我得到的问题来看,我想要一个已经存在的方法列表。