Ruby发送方法到Array #map

时间:2013-11-24 13:10:14

标签: ruby-on-rails ruby

我想在ruby中更改数组。通常我会做

[1,2,3].map{|i| i*3}

但是我想使用发送,就像我使用to_s

[1,2,3].map &:to_s

我试试这个:

[1,2,3].map &:send(:*, 3)

但它返回错误

SyntaxError: unexpected '(', expecting $end
[1, 2, 3].map &:send(:*, 3)

如何在不使用{}

的情况下将此块发送到地图

1 个答案:

答案 0 :(得分:6)

在这种特殊情况下,您可以利用乘法是(或至少应该)对称的事实,即a*b == b*a

[1, 2, 3].map(&3.method(:*))