学习Ruby语法的官方文档或方法是什么?

时间:2018-06-04 21:19:39

标签: ruby mri

Yukihiro Matsumoto本人有https://ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html,但鉴于我找不到提及&.(例如a&.b)或&:(例如m(&:f) }),它似乎没有更新。我记得很久以前有一个人试图根据MRI的单元测试来记录它,但由于缺乏开发人员的协作而放弃并放弃了项目。

目前,似乎学习的唯一方法是在StackOverflow或某个开源ruby项目上偶然发现新语法。

1 个答案:

答案 0 :(得分:4)

Ruby语法的规范文档与doc/syntax目录中的语言源代码一起维护。您可以在GitHub上阅读,例如在ruby-doc.org

在那里,您会找到&.运营商的the description

  

您可以使用&.指定接收者,然后当接收者为my_method时,不会调用nil,结果为nil。在这种情况下,my_method的参数不会被评估。

以及the logic将Proc对象(或更准确地说:一个可以转换为Proc的对象)转换为块:

  

您可以使用&运算符将proc或lambda转换为块参数:

argument = proc { |a| puts "#{a.inspect} was yielded" }

my_method(&argument)

这里需要注意的是,符号会响应to_proc,它允许符号像proc一样运行(因此当用于调用带有例如{的方法时,可以将其转换为proc并随后转换为块。 {1}}。

一般而言,要了解Ruby的语法和编程方法,您可以从几本书中的一本开始,例如: Programming Ruby 1.9 and 2.0。一般来说,从开始到出版,书籍往往需要一些时间(通常是几年),因此往往不会涵盖最新的语言添加。但是,它们可以为您提供有关语言及其核心概念的良好概述。

在较新版本的Ruby中有一些新增功能可以使一些事情变得更容易,例如Ruby 2.3中添加的my_method(&:foo)运算符或默认冻结字符串等。虽然这些新增功能很有用,但是当您开始使用Ruby进行编程时,通常会偶然发现它们。在这里,遵循release news可能会很有用,其中简要描述了新功能和显着变化。