1
任何人都可以解释为什么这两个代码片段不等效?要么我错过了一些东西,要么注射不会做我认为的事情。鉴于:注入不按预期工作
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 2013-02-20 17:14:05