【发布时间】:2013-01-09 17:06:35
【问题描述】:
鉴于Enumerable#inject 可以将符号或块作为迭代中使用的方法,正如this question 的回答中所解释的那样,是否有任何理由将& 与@ 结合使用987654324@ 在Enumerable#inject 内?以下对返回相同的结果:
[1, 2, 3, 4, 5].inject(:+)
[1, 2, 3, 4, 5].inject(&:+)
[:a, :b, :c].inject({a: {b: {c: 1}}}, :fetch)
[:a, :b, :c].inject({a: {b: {c: 1}}}, &:fetch)
是否存在使用符号和使用块(由& 创建)产生不同结果的用例?有没有一种可以用而另一种不能用的情况?
【问题讨论】:
标签: ruby symbols inject enumerable proc