为什么这些代码片段的行为不同?我以为他们应该做同样的事情...在数组中填充哈希行为不同使用“var”而不是:var - 为什么?
foo = {}
array = []
foo['a'] = "1"
foo['b'] = "2"
array << foo
foo['a'] = "3"
foo['b'] = "4"
array << foo
output => [{"a"=>"3", "b"=>"4"}, {"a"=>"3", "b"=>"4"}]
这不是我想要的。幸运的是,我尝试使用这种格式,它的工作原理:
foo = {}
array = []
foo = {
:a => "1",
:b => "2"
}
array << foo
foo = {
:a => "3",
:b => "4"
}
array << foo
output => [{:a=>"1", :b=>"2"}, {:a=>"3", :b=>"4"}]
这是怎么回事?
谢谢;我总是会忘记那个done的.clone方法。 – MorningHacker