代码之家  ›  专栏  ›  技术社区  ›  Yetanotherjosh

有没有关于ruby语法的明确参考文档?[关闭]

  •  20
  • Yetanotherjosh  · 技术社区  · 14 年前

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

    我知道有很多书和教程,是的,但是每一本基本上都是一个教程,每一本都有不同的深度和重点。由于篇幅简短,叙述流畅,他们都会略去作者认为无关紧要的语言细节。

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

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

    我只是错过了什么还是真的没有 决定性的 定义整个ruby语法的可读文档?

    4 回复  |  直到 14 年前
        1
  •  12
  •   Jörg W Mittag    14 年前

    这个 只有 可以合理描述为“确定的”文档是 parse.y 在yarv源代码树中。

    这个 ISO Draft Specification 包含39页的附录和语法摘要。但是,请注意,iso ruby是ruby 1.8和1.9交集的最小子集。IOW:它没有描述仅在1.8或1.9中的任何内容(因此,1.9中的语法添加,如stappy proc和symbol hash没有描述),也没有描述 一切 在那个十字路口。在这方面,iso ruby有点像iso html。

    这个 RubySpec project包含ruby语言的可执行规范。不过,它不包含语法的明确规范。语法的唯一说明是 隐性的 在例子中。另外,由于ruby spec是一个基于示例的规范,它只能显示有效ruby代码的特定示例,但不能告诉您 全部的 可能有效的ruby程序,比如语法规范。而且,由于rubyspec本身是可执行的ruby代码,所以它只能显示有效的示例,而不能显示无效的示例。

    最不确定的是这本书 The Ruby Programming Language 作者大卫弗拉纳根和Yukihiro“Matz”松本刚明。

    不过,请注意,“整个ruby语法”是一项相当艰巨的任务,因为ruby的语法是 疯狂地 与大量奇怪的角落案件有关。

        2
  •  4
  •   Telemachus MrJames    14 年前

    目前正在起草一份ruby标准。你可以在这里得到它: http://ruby-std.netlab.jp/

    你的例子 case Ruby编程 选择不当。什么时候? Ruby编程 介绍 案例 (第98页为第一版,第二版为141页),托马斯说,

    红宝石 案例 表情是一种强大的野兽:多向 if 服用类固醇。为了让它更强大,它有两种口味。

    然后,他简要地解释了用例的两种方法(在初始的 案例 而且没有)。他实际上是从你说他没提到的风格开始的。

    不过,你的大点也不无道理。有一个标准可能会有帮助。

        3
  •  1
  •   maček    14 年前
        4
  •  -1
  •   Ken Bloom    14 年前

    正如上面的答案所建议的,有一个关于 http://ruby-std.netlab.jp .

    你得小心那个“规格”。它不是由语言设计师完成的,他们基本上是记录他们所看到的,而不是相反。它基于1.8.7,因此1.9中可能有未涵盖的功能。

    我无法想象自己能用一个300页的文档记住语法。要有“桌子那边”, this cheatsheet 描述所需内容:简明语法、保留字等。 This is an alternative from dzone .