如何用一个参数简化ruby块?

Gab*_*bák 1 ruby closures

在某个地方,我看到了用一个参数简化ruby块的方法,它基本上省略了垂直条和参数声明,因为它以某种方式内联.

我找不到它或记住要搜索的任何名字.

mol*_*olf 7

有一些简化适用于少数情况.

如果你有类似的东西:

(1..10).collect { |i| i.to_s }
Run Code Online (Sandbox Code Playgroud)

您可以将其简化为:

(1..10).collect(&:to_s)
Run Code Online (Sandbox Code Playgroud)

&通过调用符号的转换PROC Symbol#to_proc.它不适用于其他参数,只有在想要直接在块参数上调用方法时才有效.它是在Rails(ActiveSupport)中引入的,但它已经进入核心Ruby 1.8.7和1.9.