鉴于Enumerable#inject
可以将符号或块作为迭代中使用的方法,如对此问题的回答中所述,是否有任何理由将 the&
与Symbol#to_proc
within结合使用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)
是否存在使用符号和使用块(由创建&
)有不同结果的用例?有没有一种可以使用而另一种不能使用的情况?