本文简要介绍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 Kernel.class用法及代码示例
- Ruby Kernel.caller用法及代码示例
- Ruby Kernel.catch用法及代码示例
- Ruby Kernel.local_variables用法及代码示例
- Ruby Kernel.Integer用法及代码示例
- Ruby Kernel.binding用法及代码示例
- Ruby Kernel.frozen?用法及代码示例
- Ruby Kernel.`cmd`用法及代码示例
- Ruby Kernel.autoload用法及代码示例
- Ruby Kernel.loop用法及代码示例
- Ruby Kernel.Hash用法及代码示例
- Ruby Kernel.set_trace_func用法及代码示例
- Ruby Kernel.exit!用法及代码示例
- Ruby Kernel.trap用法及代码示例
- Ruby Kernel.String用法及代码示例
- Ruby Kernel.select用法及代码示例
- Ruby Kernel.syscall用法及代码示例
- Ruby Kernel.then用法及代码示例
- Ruby Kernel.sprintf用法及代码示例
- Ruby Kernel.Pathname用法及代码示例
- Ruby Kernel.srand用法及代码示例
- Ruby Kernel.yield_self用法及代码示例
- Ruby Kernel.BigDecimal用法及代码示例
- Ruby Kernel.raise用法及代码示例
- Ruby Kernel.test用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Kernel.clone。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。