美文网首页程序员
Ruby 赋值、浅拷贝和深拷贝

Ruby 赋值、浅拷贝和深拷贝

作者: CbdFocus | 来源:发表于2016-02-23 09:42 被阅读480次
arr = ['arr',1,2,3]
a = [arr,'str_a']
b = [arr,'str_b']
c = [arr,'str_c']
d = [arr,'str_d']

# 对象引用
aa = a
# 浅拷贝
bb = b.clone
cc = c.dup
# 深拷贝
dd = Marshal.load(Marshal.dump(d))


a.push('push_a')
b.push('push_b')
c.push('push_c')
d.push('push_d')
arr.push('push_arr')

p a,aa
puts "\n"
p b,bb
puts "\n"
p c,cc
puts "\n"
p d,dd

=begin
[["arr", 1, 2, 3, "push_arr"], "str_a", "push_a"]
[["arr", 1, 2, 3, "push_arr"], "str_a", "push_a"]

[["arr", 1, 2, 3, "push_arr"], "str_b", "push_b"]
[["arr", 1, 2, 3, "push_arr"], "str_b"]

[["arr", 1, 2, 3, "push_arr"], "str_c", "push_c"]
[["arr", 1, 2, 3, "push_arr"], "str_c"]

[["arr", 1, 2, 3, "push_arr"], "str_d", "push_d"]
[["arr", 1, 2, 3], "str_d"]
=end

相关文章

  • Ruby 赋值、浅拷贝和深拷贝

  • 简介深浅拷贝

    深浅拷贝 python 直接赋值,浅拷贝和深拷贝 直接赋值 其实就是对象的引用 (可以理解成浅拷贝) 浅拷贝: 拷...

  • python的浅拷贝和深拷贝

    对于不可变类型,浅拷贝和深拷贝没有区别 对于不可变类型 赋值 浅拷贝 深拷贝

  • Python中的引用赋值,深拷贝,浅拷贝

    摘要:Python,引用赋值,深拷贝,浅拷贝 总结一下Python中的变量的引用赋值,深拷贝和浅拷贝,先上结论 赋...

  • 深拷贝 浅拷贝

    深入认识深拷贝 浅拷贝 公共方法 // 深拷贝 浅拷贝 对于基本类型来说 对于赋值操作 就是 深拷贝 因为值...

  • PHP之剑走偏锋的DeepCopy

    php的深拷贝和浅拷贝问题,普通变量对象的赋值 = 是深拷贝,& 是浅拷贝。 输出结果: 类对象的拷贝问题就得看下...

  • js深拷贝浅拷贝

    目录 一.数据类型 二.浅拷贝与深拷贝 三.赋值和浅拷贝的区别 四.浅拷贝的实现方式 五.深拷贝的实现方式 一.数...

  • Python底层|赋值 浅拷贝 深拷贝

    参考 python中的深拷贝和浅拷贝问题python的复制,深拷贝和浅拷贝的区别 结论 总体来说,赋值只是增加了一...

  • 深浅拷贝理解

    先看最简单的赋值 (a=b) 浅拷贝 补充说明浅拷贝 如图 深拷贝

  • 赋值 浅拷贝 深拷贝

    赋值、浅拷贝、深拷贝赋值就是完全引用原来的对象通俗的理解,浅就是外面,深就是里面。浅拷贝的意思就是只拷贝外面的一层...

网友评论

    本文标题:Ruby 赋值、浅拷贝和深拷贝

    本文链接:https://www.haomeiwen.com/subject/xrvbkttx.html