this questionEnumerable#inject
への回答で説明されているように、 iteration で使用されるメソッドとしてシンボルまたはブロックのいずれかを取ることができるとすれば、 withinと組み合わせて inを使用する理由はありますか? 次のペアは同じ結果を返します。&
Symbol#to_proc
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)
シンボルの使用とブロック (によって作成された&
) の使用で結果が異なるユースケースはありますか? 一方を使用でき、他方を使用できない場合はありますか?