`
biyeah
  • 浏览: 202875 次
  • 来自: ...
社区版块
存档分类
最新评论

[转]Ruby - DUP vs CLONE

    博客分类:
  • Ruby
 
阅读更多
http://railsblogger.blogspot.com/2009/03/ruby-dup-vs-clone.html

Ruby - DUP vs CLONE
Both DUP & CLONE can be used to create shallow copy of an object. Both copies the instance variables of obj. But we need to be selective in their usage.

Few difference between these are

1) CLONE copies both FROZEN and TAINTED state of an object, where as DUP only copies TAINTED state of an object.

2) With CLONE you can copy any singleton methods of an object but DUP does not support this.

CLONE is used to duplicate an object, including its internal state, DUP typically uses the class of the descendent object to create the new instance.

I had some bitter experience while using DUP for duplicating an ActiveRecord row, this ended up in losing the original one the same worked fine with CLONE.


A good article on Objects states can be found here
引用
obj.dup → anObject
Produces a shallow copy of obj—the instance variables of obj are copied, but not the objects they reference. dup copies the tainted state of obj. See also the discussion under Object#clone. In general, clone and dup may have different semantics in descendent classes. While clone is used to duplicate an object, including its internal state, dup typically uses the class of the descendent object to create the new instance.
分享到:
评论

相关推荐

    2018--Find-Dup-File,重复文件查找工具

    《重复文件查找利器:2018--Find-Dup-File》 在日常工作中,无论是个人用户还是专业程序员,都可能面临硬盘空间被大量重复文件占据的问题。为了解决这个问题,2018年出现了一款高效实用的工具——"2018--Find-Dup-...

    Python库 | pytest-drop-dup-tests-0.2.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pytest-drop-dup-tests-0.2.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Ruby-Ruby中的GoF设计模式实现

    Ruby支持对象的克隆,`Object#clone`或`Object#dup`方法可以实现原型模式。 6. **适配器模式**:将一个类的接口转换成客户希望的另一个接口。Ruby的鸭子类型特性使得适配器模式尤为自然,只需确保对象响应所需的...

    hk-dup-finder:hadi重复文件查找器-开源

    【hk-dup-finder:Hadi重复文件查找器——开源宝藏】 hk-dup-finder,一个由Hadi Kiamarsi开发的开源项目,是寻找计算机中重复文件的强大工具。这个软件的设计初衷是为了帮助用户有效管理和优化他们的存储空间,...

    async-dup:复制异步IO句柄

    异步复制 复制异步I / O句柄。... use async_dup :: Arc; use futures :: io; use smol :: Async; use std :: net :: TcpStream; // A client that echoes messages back to the server. let stream =

    mruby-io-dup2:IO.dup2用于mruby

    标题中的“mruby-io-dup2”指的是一个与mruby相关的库或模块,它实现了`IO.dup2`功能。mruby是Ruby编程语言的一个轻量级实现,它旨在嵌入到其他应用程序中,提供Ruby的脚本能力和灵活性。在mruby中,`IO.dup2`方法是...

    move-dup:Emacs次要模式,用于类似于Eclipse的移动和行或选择的复制,并具有方便的键绑定

    移动 次要模式,用于类似Eclipse的移动或复制线条或矩形。 该软件包提供了方便的编辑命令,就像Eclipse的移动...( global-set-key ( kbd " M-<up> " ) 'move-dup-move-lines-up ) ( global-set-key ( kbd " M-<do

    n way Duplicate File / Directory Finder:请使用开源-htp://code.google.com/p/off-dup-finder/-开源

    项目已移至此处:http://code.google.com/p/off-dup-finder/(使用开源)------已弃用---------------- -------------------这个专案需要GNU GCJ 4.5 for linux(ubuntu live-cd上的'apt-get install gcj-jdk'或'...

    syslog-dup:嗅探系统日志流复制器

    usage: syslog_dup.py [-h] [-d] [-q] [-n] [-c COUNT] [-s [IP]] [-o PORT] -i IF dst dport ... syslog duplicator - sniffs syslog packets and resends them to a new logger positional arguments: dst ...

    diablo2oo2's Universal Patcher(DUP) v2.26.1 汉化版.rar

    《Diablo2oo2's Universal Patcher (DUP) v2.26.1 汉化版详解》 Diablo2oo2's Universal Patcher(简称DUP)是一款专为游戏《暗黑破坏神2》(Diablo II)设计的多用途补丁工具,由知名游戏爱好者diablo2oo2开发。此...

    vscode-dup-checker:vscode扩展来检查和删除重复的行

    DupChecker 特征 检查文件内容或选择中的重复行,如果只需要保留唯一行,则将其删除。 :NEW_button: 从v0.1.0开始,DupChecker使用来加快检查进度,并能够处理超过100k行的大型文件。 :red_exclamation_mark: ...

    kaggle-quora-dup:Kaggle的Quora重复问题检测竞赛的解决方案

    Kaggle的Quora重复问题检测比赛的解决方案 ... 考虑到其他顶级解决方案,这是一个相对轻量级的模型。 先决条件 从下载预训练的单词向量,即Gloves.840B.300d,并将其放入项目目录。 从下载火车和测试数据。...

    dup_dup2介绍

    在Linux操作系统中,`dup`和`dup2`是两个重要的系统调用,它们与文件描述符管理和进程间通信紧密相关。本文将详细介绍这两个函数的工作原理、使用场景以及如何用C语言实现它们。 首先,我们来看`dup`系统调用。`dup...

    电阻电容电感原理图封装库

    最全的电阻电容电感原理图封装库,大家常用,可以收藏

    Dup-Pack:基于CRIS的FPGA装箱方法.pdf

    本文所介绍的Dup-Pack方法,是基于CRIS(电路改写指令系统)的一种FPGA装箱方法,通过这种方式可以有效优化FPGA芯片的使用。 FPGA(现场可编程门阵列)是一种可以通过软件编程来配置的数字集成电路。与传统的集成电路...

    DUP414中文驱动

    【DUP414中文驱动】是针对DUP-414设备的特定驱动程序,主要目的是为了让计算机能够正确识别并有效地与该设备进行通信。DUP-414可能是打印机、扫描仪或其他类型的外设,它需要这个驱动程序来确保在中文环境下正常工作...

    文件描述符的复制:dup()和dup2()示例代码

    本篇文章将深入探讨如何通过`dup()`和`dup2()`两个系统调用来复制文件描述符,并提供相关示例代码。 `dup()`函数是Linux提供的一个系统调用,它的主要作用是创建一个新的文件描述符,该描述符与已存在的一个文件...

    dup源代码dup

    dup函数在系统编写程序的用法 及源代码

    ruby api

    1. Object:所有Ruby对象的基类,包含了一些通用的方法,如`object_id`用于获取对象的唯一标识,`==`进行对象的比较,`clone`和`dup`用于创建对象的副本。 2. String:处理文本字符串的类,提供了丰富的字符串操作...

Global site tag (gtag.js) - Google Analytics