我想在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)
如何在不使用{}
答案 0 :(得分:6)
在这种特殊情况下,您可以利用乘法是(或至少应该)对称的事实,即a*b == b*a
:
[1, 2, 3].map(&3.method(:*))