Показать сообщение отдельно

  #5  
Старый 25.08.2009, 01:01
geezer.code
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;}
 
Ответить с цитированием