вызывая вводить только передавая ему символ - PullRequest
0 голосов
/ 23 марта 2012

Может кто-нибудь объяснить это на примере того, как это полезно.

В частности, у меня возникла проблема с тем, как вы что-то накапливаете (массив был бы хорош), когда вы изменяете область видимости в метод ..

например

def modify(value)
  ...code ....
end

an_array.inject(:modify)

Как получить аккумулятор (см. Выше) или что-то, что передает сообщение.Возвращаемое значение является последним значением, которое выйдет из изменения.Но изменение только получает каждое значение в массиве.Это не получает сообщение.(ниже) передача сообщения в .... код ...

an_array.inject(0) { |message,element| .... code .... }

1 Ответ

0 голосов
/ 23 марта 2012

Использование inject только с символом:

[*1..5].inject(:+) #=> 15

Вышеприведенное означает:

[*1..5].inject { |sum, num| sum + num }

Это то, что документы должны сказать по этому вопросу (выделение добавлено):

Объединяет все элементы перечисления, применяя двоичную операцию, заданную блоком или символом , которая называет метод или оператор

Я с удовольствием обновлю свой ответ, как только вы немного проясните вторую часть вашего вопроса (например, что вы подразумеваете под «изменением объема» в этом контексте?).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...