當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。