我对 Ruby 中的保留字有点困惑。
由 Matz 合着的“The Ruby Programming Language”就是这样说的,begin
并且end
是该语言的保留字。它们当然在语法上用于标记块。
但是,该语言中的范围对象具有名为begin
and的方法end
,如
(1..10).end
=> 10
现在,测试一下,我发现,确实,我可以在对象上定义名为“begin”和“end”的方法,但如果我尝试将变量命名为“begin”,它会失败。(这是使用它作为方法名称的示例,它确实有效...... :)
class Foo
def begin
puts "hi"
end
end
Foo.new.begin
所以,我想我在问,这样的保留字实际上是什么状态?我会想象它们不能用于方法名称(但它似乎有效),或者至少它会是一种糟糕的风格(但它实际上用于 Range 类的核心语言)。
对于何时允许使用它们以及用于什么用途,我感到非常困惑。甚至有这方面的文件吗?