Adr*_*n M 4 ruby ruby-on-rails
我想在ruby中改变一个数组.通常我会这样做
[1,2,3].map{|i| i*3}
Run Code Online (Sandbox Code Playgroud)
但是我想使用像我使用的发送to_s:
[1,2,3].map &:to_s
Run Code Online (Sandbox Code Playgroud)
我试试这个:
[1,2,3].map &:send(:*, 3)
Run Code Online (Sandbox Code Playgroud)
但它返回一个错误
SyntaxError: unexpected '(', expecting $end
[1, 2, 3].map &:send(:*, 3)
Run Code Online (Sandbox Code Playgroud)
如何在不使用的情况下将此块发送到地图 {}
在这种特殊情况下,您可以利用乘法是(或至少应该)对称的事实,即a*b == b*a:
[1, 2, 3].map(&3.method(:*))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |