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

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

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

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

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

我只是遗漏了什么或者是否真的没有明确可读的文档来定义整个Ruby语法?

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

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

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

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

但请注意,“整个Ruby语法”是一项相当艰巨的任务,因为Ruby的语法非常复杂,并且有大量奇怪的角落情况。

工作中有一个Ruby标准草案。 你可以在这里得到它: http : //ruby-std.netlab.jp/

关于caseProgramming Ruby的例子选择不当。 编程Ruby引入case (第98页第一版;第二版141),托马斯说,

Ruby case表达是一种强大的野兽: if使用类固醇,那就是多种方式。 而且为了使它更强大,它有两种口味。

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

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

如上面的答案所示,我们正在努力在http://ruby-std.netlab.jp上编写“规范”。

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

我无法想象自己会记住300页文档的语法。 为了“超过表格”, 这个备忘单描述了你想要的东西:浓缩语法,保留字等。 这是dzone的替代方案 。