【发布时间】:2014-08-13 19:05:08
【问题描述】:
为什么输出一样?
第一次注入:
puts (3...10).inject(0) { |sum, x| (x % 3 == 0 || x % 5 == 0) ? sum + x : sum }
# => 23
第二次注入:
puts (3...10).inject { |sum, x| (x % 3 == 0 || x % 5 == 0) ? sum + x : sum }
# => 23
# Why not 26?
我想如果没有参数传递给它,inject 使用集合的第一个元素作为初始值。
所以第二次注入应该返回与这次相同的值:
puts (3...10).inject(3) { |sum, x| (x % 3 == 0 || x % 5 == 0) ? sum + x : sum }
# => 26
【问题讨论】: