ruby ​​inject с условным выражением в блоке?

выполняя первый вопрос Проекта Эйлера: суммируя числа, кратные 3 и 5, между 1 и 1000, я придумал это (довольно простое)

sum = 0
1.upto(999) { |i| sum += i if 0 == i%3 || 0 ==  i%5 }
sum

но я думал, что это сработает, но это не так , может кто-нибудь показать мне, что я делаю неправильно или почему это не работает?

1.upto(999).inject(0) { |sum, i| sum + i if 0 == i%3 || 0 ==  i%5 }

спасибо!

12
задан Tonys 23 May 2012 в 15:15
поделиться