是否有Ruby语法的权威参考文档?

时间:2010-05-02 19:32:42

标签: ruby syntax documentation

我正在寻找关于Ruby语法的权威文档。我知道核心API和标准库的权威文档,但语法本身呢?例如,这样的文档应该包括:保留字,字符串文字语法,变量/类/模块的命名规则,所有条件语句及其排列等等。

我知道有很多书籍和教程,是的,但是每一本都是教程,每一本教程都有不同的深度和焦点。他们都会因为简洁和叙事流程的必要性而忽略了作者认为无关紧要的语言的某些细节。

例如,您是否知道可以使用没有初始大小写值的case语句,然后它将执行第一个true when子句?任何给定的Ruby书籍或教程可能会也可能不会涵盖案例语法的特定鲜为人知的功能。关于案例陈述,“Ruby Ruby”一节中没有对此进行讨论。但这只是一个小例子。

到目前为止,我发现的最好的文档是rubyspec项目,它似乎是尝试为该语言编写完整的测试套件。这还不错,但从实际的角度来看,作为开发我自己项目的开发人员有点困难。

我是否只是遗漏了某些内容,或者是否确实没有定义整个Ruby语法的权威可读文档?

4 个答案:

答案 0 :(得分:12)

可以合理描述为“权威”的文档是YARV源代码树中parse.y的源代码。

ISO Draft Specification包含39页的附录,其中包含语法摘要。但请注意,ISO Ruby是Ruby 1.8和1.9交集的最小子集。 IOW:它没有描述仅在1.8或仅在1.9中的任何内容(因此,1.9中的语法添加如stabby proc和符号哈希未被描述),也没有描述所有 in那个十字路口在这方面,ISO Ruby有点像ISO HTML。

RubySpec项目包含Ruby语言的可执行规范。但它不包含语法的明确规范。语法的唯一规范是示例本身中的隐式。另外,因为RubySpec是一个基于示例的规范,它只能向您展示有效Ruby代码的具体示例,但它无法告诉您所有可能的有效Ruby程序,如语法规范。而且,因为RubySpec本身是可执行的Ruby代码,所以它只能显示有效的例子,而不是无效的例子。

最后一件可以被认为是确定的事情是David Flanagan和Yukihiro“matz”Matsumoto的书The Ruby Programming Language

但请注意,“整个Ruby语法”是一项相当艰巨的任务,因为Ruby的语法疯狂地复杂化了大量奇怪的角落案例。

答案 1 :(得分:4)

正在制作Ruby标准草案。你可以在这里得到它:http://ruby-std.netlab.jp/

关于case编程Ruby 的示例选择不当。当编程Ruby 引入case时(第98页为第一版; 141为第二版),Thomas说,

  

Ruby case表达式是一个强大的野兽:类固醇的多路if。只是为了使它更强大,它有两种风格。

然后他简要介绍了两种使用案例的方法(在初始case之后有明确的目标而没有)。他实际上从你说他没有提到的风格开始。

但你的更大观点并非不合理。拥有标准可能会有所帮助。

答案 2 :(得分:1)

答案 3 :(得分:-1)

如上所述,我们努力在http://ruby-std.netlab.jp上撰写“规范”。

你必须小心那个“规范”。它不是由语言设计者完成的,它们基本上记录了他们所看到的内容而不是相反的方式。它基于1.8.7,因此1.9中可能没有涵盖的功能。

我无法想象自己会记住300页文档的语法。为了“超越表格”,this cheatsheet描述了您想要的内容:简明语法,保留字等。This is an alternative from dzone