Ruby: Problem einschleusen, wenn Array in Hash umgewandelt wird

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

Wenn ich dies ausführe, erhalte ich einen Indexfehler

Wenn ich den Block in ändere

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

Es funktioniert dann.

Wie geht Ruby mit dem ersten Injektionsversuch um, der nicht das bekommt, was ich will?
Gibt es einen besseren Weg, dies zu tun?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage