转换为 Proc
响应 to_proc
的对象可以使用 &
运算符转换为 procs(这也允许它们作为块传递)。
类 Symbol 定义 #to_proc
,因此它尝试在它接收的对象上调用相应的方法作为参数。
p [ 'rabbit', 'grass' ].map( &:upcase ) # => ["RABBIT", "GRASS"]
方法对象也定义了 #to_proc
。
output = method( :p )
[ 'rabbit', 'grass' ].map( &output ) # => "rabbit\ngrass"