| 赞 | 23 |
| VIP | |
| 好人卡 | |
| 积分 | 611 |
| 经验 | |
| 最后登录 | 2020-9-19 |
| 在线时间 | 1933 小时 |
Fuzzy Ginkgo
- 梦石
- 0
- 星屑
- 61105
- 在线时间
- 1933 小时
- 注册时间
- 2010-6-26
- 回帖
- 1535
 
|
发表于 2012-3-11 14:46:25
|
显示全部楼层
本帖最后由 orzfly 于 2012-3-11 15:03 编辑
Ruby里面到处都是引用……
请用此卖萌deepcopy
[pre lang="ruby"]def deepcopy(input)
begin Marshal.load Marshal.dump input rescue input.map { |i| i.is_a?(Array) ? deepcopy(i) : (begin i.clone rescue i end) } end
end
top=binding;puts <<_EOC.split("\n").map{|i|"#{i}\n=>#{top.eval i}\n\n"}.join
a=[[[11,2],3],4]
a
b=deepcopy(a)
b[0][0][0]=12
b
a
_EOC[/pre]- a=[[[11,2],3],4]
- =>[[[11, 2], 3], 4]
- a
- =>[[[11, 2], 3], 4]
- b=deepcopy(a)
- =>[[[11, 2], 3], 4]
- b[0][0][0]=12
- =>12
- b
- =>[[[12, 2], 3], 4]
- a
- =>[[[11, 2], 3], 4]
复制代码 ������ |
评分
-
查看全部评分
|