当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Kernel.clone用法及代码示例


本文简要介绍ruby语言中 Kernel.clone 的用法。

用法

clone(freeze: nil) → an_object

生成 obj 的浅拷贝——复制 obj 的实例变量,但不复制它们引用的对象。 clone 复制 obj 的冻结值状态,除非 :freeze 关键字参数给出了 false 或 true 值。另请参阅 Object#dup 下的讨论。

class Klass
   attr_accessor :str
end
s1 = Klass.new      #=> #<Klass:0x401b3a38>
s1.str = "Hello"    #=> "Hello"
s2 = s1.clone       #=> #<Klass:0x401b3998 @str="Hello">
s2.str[1,4] = "i"   #=> "i"
s1.inspect          #=> "#<Klass:0x401b3a38 @str=\"Hi\">"
s2.inspect          #=> "#<Klass:0x401b3998 @str=\"Hi\">"

此方法可能具有特定于类的行为。如果是这样,该行为将记录在该类的 # initialize_copy 方法下。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Kernel.clone。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。