有松本幸博自己写的https://ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html,但考虑到我找不到提到&. (例如a&.b)或&: (例如m(&:f)),它看起来并不是很新。我记得很久以前,有一个人试图基于MRI的单元测试来记录它,但由于缺乏开发人员的合作,他放弃了这个项目。
现在,学习新语法的唯一方法似乎是在StackOverflow或某个开源ruby项目中偶然发现新语法。
发布于 2018-06-05 05:55:01
Ruby语法的规范文档与语言的源代码一起保存在doc/syntax目录中。你可以在GitHub或ruby-doc.org上阅读它。
在那里,您将找到&.操作符的the description:
您可以使用
&.指定接收方,然后不会调用my_method,当接收方为nil时,结果为nil。在这种情况下,不计算my_method的参数。
以及将Proc对象(或者更准确地说:可以转换为Proc的对象)转换为块的the logic:
您可以使用&运算符将proc或
转换为块参数:
argument =过程{ |a| puts "#{a.inspect}已产生“} my_method(&argument)
这里,值得注意的是,Symbols响应proc,这使得Symbol的行为类似于proc(因此在使用my_method(&:foo)调用方法时,可以将其转换为proc并随后转换为块)。
一般来说,要了解Ruby的语法和编程方法,您可以从几本书中的一本开始,例如Programming Ruby 1.9 and 2.0。一般来说,书籍从开始到出版往往需要一些时间(通常是几年),因此往往不会涵盖最新添加的语言。然而,它们可以给你一个很好的关于语言及其核心概念的概述。
在新版本的Ruby中有一些新的功能,这使得一些事情变得更简单,比如Ruby2.3中添加的&.操作符,或者默认的冻结字符串。虽然这些附加功能很有用,但当您开始实际使用Ruby编程时,通常会偶然发现它们。在这里,遵循release news可能是有用的,其中简要描述了新功能和值得注意的变化。
https://stackoverflow.com/questions/50688926
复制相似问题