1
Может кто-нибудь объяснить, почему эти два фрагмента кода не эквивалентны? Либо я что-то упускаю, либо вдавливаю, не делаю то, что я думаю. Дано:Inject не работает как ожидалось
nodes = [{id: 1}, {id: 2}]
Этот код:
result = Hash.new
nodes.each do |node|
result[node[:id]] = node.inspect
end
result
возвращает
{
1 => "{:id=>1}",
2 => "{:id=>2}"
}
Но это:
nodes.inject({}) {|hash, node|hash[node[:id]] = node.inspect}
возвращается:
"{:id=>2}"
Почему?
Спасибо! Уже поздно, я знаю, что я толстый! – Chris