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