【发布时间】:2013-02-20 21:13:46
【问题描述】:
特别是使用注入,以下脚本,
-
puts (1..5).inject {|x, y| x * y}和 -
puts (1..5).inject(:*),
正如我所料,两者都有输出120。
但是,脚本
print [[1,2], [3,4], [5,6]].map {|x, y| x * y}
有输出
[2, 12, 30]
不出所料,但脚本
print [[1,2], [3,4], [5,6]].map(:*)
提出ArgumentError:
confused_ruby_map_inject.rb:1:in `map': wrong number of arguments(1 for 0) (ArgumentError)
from confused_ruby_map_inject.rb:1:in `<main>'
为什么会发生这种情况,:* 做了什么,以及使用第二组脚本实现我正在寻找的结果的最简洁方法是什么?
【问题讨论】:
标签: ruby ruby-1.9 enumerable