Ruby: problem z wtryskiem podczas przekształcania tablicy w hash

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

Kiedy to uruchomię, pojawia się błąd indeksu

Kiedy zmieniam blok na

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

To działa.

W jaki sposób ruby ​​obsługuje pierwszą próbę wstrzyknięcia, która nie dostaje tego, czego chcę?
Czy jest lepszy sposób, aby to zrobić?

questionAnswers(4)

yourAnswerToTheQuestion