【发布时间】:2016-09-11 17:27:36
【问题描述】:
我有以下代码:
session={"apple"=>["bp", "80APPM", "donald"]}
@like_list = session
@like_list.each do |key, value|
value.each_with_index do |v, i|
@like_list[key][i] = 2
end
end
session # => {"apple"=>[2, 2, 2]}
@like_list # => {"apple"=>[2, 2, 2]}
分配给变量session 和@like_list 的对象都已更改。有什么方法可以在不改变session的值的情况下执行上述代码?
我尝试使用 clone 和 dup 但没有任何变化
【问题讨论】:
-
dup 和 clone 是浅拷贝,见:stackoverflow.com/a/4157635/3109182
-
@sawa,抱歉,打错了。它应该是“@like_list”
标签: ruby