我对Ruby中的保留字感到困惑.
由Matz共同撰写的"Ruby编程语言"说,begin并且end是该语言的保留词.它们肯定用于语法标记块.
然而,在语言的范围对象已命名的方法begin和end,如
(1..10).end
=> 10
Run Code Online (Sandbox Code Playgroud)
现在,测试一下,我发现,实际上,我可以在对象上定义名为"begin"和"end"的方法,但如果我尝试将变量命名为"begin"则失败.(这是一个使用它作为方法名称的示例,它实际上有效...... :)
class Foo
def begin
puts "hi"
end
end
Foo.new.begin
Run Code Online (Sandbox Code Playgroud)
所以,我想我在问,这样的保留字的状态究竟是什么?我会想象它们不能用于方法名称(但它似乎工作)或者至少它会是一种糟糕的风格(但它实际上用在Range类的核心语言中).
我很困惑他们什么时候被允许使用以及什么时候被使用.甚至有关于此的文件?
ruby ×1