关于 Ruby 语法的最官方文档或学习方法是什么?
What's the most official documentation of or way to learn Ruby's syntax?
有 https://ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html,由 Yukihiro Matsumoto 本人撰写,但鉴于我找不到提及 &.
(例如 a&.b
)或 &:
(例如 m(&:f)
), 好像不是很更新。记得曾几何时,有人试图根据 MRI 的单元测试来记录它,但由于缺乏开发人员的协作而放弃并放弃了该项目。
现在,似乎唯一的学习方法是在 Whosebug 或一些开源 ruby 项目上偶然发现新语法。
Ruby 语法的规范文档与语言的源代码一起保存在 doc/syntax
目录中。您可以在 GitHub or e.g. on ruby-doc.org.
上阅读
在那里,您会找到 &.
运算符的 the description:
You may use &.
to designate a receiver, then my_method
is not invoked and the result is nil
when the receiver is nil
. In that case, the arguments of my_method
are not evaluated.
以及 the logic 将 Proc 对象(或更准确地说:可以转换为 Proc 的对象)转换为块:
You can convert a proc or lambda to a block argument with the &
operator:
argument = proc { |a| puts "#{a.inspect} was yielded" }
my_method(&argument)
这里,有趣的是,Symbols 响应 to_proc
,它允许 Symbols 像 procs 一样工作(因此可以转换为 proc,然后在用于调用方法时转换为块例如 my_method(&:foo)
.
一般来说,要了解 Ruby 的语法和编程方法,您可以从几本书中的一本开始,例如Programming Ruby 1.9 and 2.0。一般来说,书籍从开始到出版往往需要一些时间(通常是几年),因此往往不会涵盖最新的语言添加。但是,它们可以让您很好地了解该语言及其核心概念。
Ruby 的较新版本中添加了一些内容,使某些事情变得更容易,例如 Ruby 2.3 中添加的 &.
运算符或默认冻结字符串等内容。虽然这些添加的内容很有用,但是当您开始在 Ruby 中实际编程时,您通常会偶然发现它们。在这里,遵循 release news 对新功能和显着变化进行了简要描述可能会有用。
有 https://ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html,由 Yukihiro Matsumoto 本人撰写,但鉴于我找不到提及 &.
(例如 a&.b
)或 &:
(例如 m(&:f)
), 好像不是很更新。记得曾几何时,有人试图根据 MRI 的单元测试来记录它,但由于缺乏开发人员的协作而放弃并放弃了该项目。
现在,似乎唯一的学习方法是在 Whosebug 或一些开源 ruby 项目上偶然发现新语法。
Ruby 语法的规范文档与语言的源代码一起保存在 doc/syntax
目录中。您可以在 GitHub or e.g. on ruby-doc.org.
在那里,您会找到 &.
运算符的 the description:
You may use
&.
to designate a receiver, thenmy_method
is not invoked and the result isnil
when the receiver isnil
. In that case, the arguments ofmy_method
are not evaluated.
以及 the logic 将 Proc 对象(或更准确地说:可以转换为 Proc 的对象)转换为块:
You can convert a proc or lambda to a block argument with the
&
operator:argument = proc { |a| puts "#{a.inspect} was yielded" } my_method(&argument)
这里,有趣的是,Symbols 响应 to_proc
,它允许 Symbols 像 procs 一样工作(因此可以转换为 proc,然后在用于调用方法时转换为块例如 my_method(&:foo)
.
一般来说,要了解 Ruby 的语法和编程方法,您可以从几本书中的一本开始,例如Programming Ruby 1.9 and 2.0。一般来说,书籍从开始到出版往往需要一些时间(通常是几年),因此往往不会涵盖最新的语言添加。但是,它们可以让您很好地了解该语言及其核心概念。
Ruby 的较新版本中添加了一些内容,使某些事情变得更容易,例如 Ruby 2.3 中添加的 &.
运算符或默认冻结字符串等内容。虽然这些添加的内容很有用,但是当您开始在 Ruby 中实际编程时,您通常会偶然发现它们。在这里,遵循 release news 对新功能和显着变化进行了简要描述可能会有用。