Ruby: проблема с внедрением при превращении массива в хеш

a = [[1, 'a'],[2, 'b'],[3, 'c'], [4, 'd']]
a.inject({}) {|r, val| r[val[0]] = val[1]}

Когда я запускаю это, я получаю ошибку индекса

Когда я поменяю блок на

a.inject({}) {|r, val| r[val[0]] = val[1]; r}

Тогда это работает.

Как Рубин обрабатывает первую попытку инъекции, которая не дает того, что я хочу?
Есть лучший способ сделать это

Ответы на вопрос(4)

Ваш ответ на вопрос