るりまサーチ

最速Rubyリファレンスマニュアル検索!
27件ヒット [1-27件を表示] (0.051秒)
トップページ > クエリ:taint[x] > クラス:Object[x] > クエリ:clone[x] > クエリ:initialize_copy[x]

別のキーワード

  1. rexml/document clone
  2. _builtin clone
  3. singleton clone
  4. set clone
  5. matrix clone

ライブラリ

検索結果

Object#initialize_copy(obj) -> object (18198.0)

(拡張ライブラリによる) ユーザ定義クラスのオブジェクトコピーの初期化メソッド。

...や特異メソッドは変化しません。

デフォルトでは、Object#clone の内部で Object#initialize_clone から、
また Object#dup の内部で Object#initialize_dup から呼ばれます。

initialize_copy
は、Ruby インタプリタが知り得ない情報をコピーするた...
...い場合がありますが、そういった内部情
報を initialize_copy でコピーするよう定義しておくことで、dup や clone
を再定義する必要がなくなります。

デフォルトの Object#initialize_copy は、 freeze チェックおよび型のチェックを行い...
...作ります。 obj.clone は、さらに
特異メソッドのコピーも行います。

//emlist[][ruby]{
obj = Object.new
class <<obj
attr_accessor :foo
def bar
:bar
end
end

def check(obj)
puts "instance variables: #{obj.inspect}"
puts "tainted?: #{obj.tainted?}"
print "singlet...

Object#clone(freeze: nil) -> object (18144.0)

オブジェクトの複製を作成して返します。

...製を作成して返します。

dup はオブジェクトの内容, taint 情報をコピーし、
clone
はそれに加えて freeze, 特異メソッドなどの情報も含めた完全な複製を作成します。

clone
や dup は浅い(shallow)コピーであることに注意してくだ...
...#=> false
p(obj == obj_d) #=> true
p(obj_d.tainted?) #=> true
p(obj_d.frozen?) #=> false
p(obj_d.respond_to?(:fuga)) #=> false
//}

@see Object#initialize_copy

=== 深いコピーと浅いコピー

clone
や dup はオブジェクト自身を複製するだけ...
...#=> false
p(obj == obj_d) #=> true
p(obj_d.tainted?) #=> false
p(obj_d.frozen?) #=> false
p(obj_d.respond_to?(:fuga)) #=> false
//}

@see Object#initialize_copy

=== 深いコピーと浅いコピー

clone
や dup はオブジェクト自身を複製するだけ...

Object#dup -> object (3044.0)

オブジェクトの複製を作成して返します。

...製を作成して返します。

dup はオブジェクトの内容, taint 情報をコピーし、
clone
はそれに加えて freeze, 特異メソッドなどの情報も含めた完全な複製を作成します。

clone
や dup は浅い(shallow)コピーであることに注意してくだ...
...#=> false
p(obj == obj_d) #=> true
p(obj_d.tainted?) #=> true
p(obj_d.frozen?) #=> false
p(obj_d.respond_to?(:fuga)) #=> false
//}

@see Object#initialize_copy

=== 深いコピーと浅いコピー

clone
や dup はオブジェクト自身を複製するだけ...
...#=> false
p(obj == obj_d) #=> true
p(obj_d.tainted?) #=> false
p(obj_d.frozen?) #=> false
p(obj_d.respond_to?(:fuga)) #=> false
//}

@see Object#initialize_copy

=== 深いコピーと浅いコピー

clone
や dup はオブジェクト自身を複製するだけ...