Я новичок в Ruby, и у меня странная проблема с методом инъекции.
Когда я делаю:
(1..10).inject(0) {|count,x| count + 1}
результат равен 10, как и ожидалось. Но когда я делаю
(1..10).inject(0) {|count,x| count + 1 if (x%2 == 0)}
Я получаю ошибку:
NoMethodError: undefined method `+' for nil:NilClass
from (irb):43
from (irb):43:in `inject'
from (irb):43:in `each'
from (irb):43:in `inject'
from (irb):43
Я не очень понимаю, почему (по-видимому) счет равен нулю во втором примере, а не в первом. В любом случае, как бы я посчитал чётные числа от 1 до 10, используя инъекцию?