
25.08.2009, 01:01
|
|
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
С нами:
10158086
Репутация:
1359
|
|
Сообщение от Flcn
Я понимаю что это бред ) Просто вызвал вопрос как оно всё же работает.. и почему конкретно...
p.s. тоесть после ретурна всё прекращается? и другие элементы массива уже не трогаются?
дак а если ретурн в блоке не ставить.. просто написать { |n, value| n = n + value}
то это всё также не работает.. и возвращает 0
Ноль возвращается потому что
в инжекте не увеличивается n
оно как пришло inject(0) , так нулем и осталось.
Код:
def inject(n)
each { |value| yield(n, value) }
n
end
а в кодблоке n уже другое n - локальное для кодблока.
{ | n, value|n = n + value;}
|
|
|