小编Per*_*rry的帖子

是否"开始"和"结束"保留字?

我对Ruby中的保留字感到困惑.

由Matz共同撰写的"Ruby编程语言"说,begin并且end是该语言的保留词.它们肯定用于语法标记块.

然而,在语言的范围对象已命名的方法beginend,如

(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

6
推荐指数
1
解决办法
605
查看次数

标签 统计

ruby ×1