るりまサーチ

最速Rubyリファレンスマニュアル検索!
33件ヒット [1-33件を表示] (0.067秒)

別のキーワード

  1. win32ole ole_activex_initialize
  2. object initialize_copy
  3. ri initialize
  4. _builtin initialize_copy
  5. object initialize

クラス

キーワード

検索結果

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

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

...、self のインスタンス変数や特異メソッドは変化しません。
Object#clone, Object#dupの内部で使われています。

initialize_copy
は、Ruby インタプリタが知り得ない情報をコピーするた
めに使用(定義)されます。例えば C 言語でクラス...
...ます。

デフォルトの Object#initialize_copy は、 freeze チェックおよび型のチェックを行い self
を返すだけのメソッドです。

initialize_copy
という名前のメソッドは
自動的に private に設定されます。

@
raise TypeError レシーバが freeze...
...なる場合に発生します。
@
see Object#clone,Object#dup

以下に例として、dup や clone がこのメソッドをどのように利用しているかを示します。

obj.dup は、新たに生成したオブジェクトに対して
initialize_copy
を呼び

//emlist[][ruby]{
obj2 =...

Object#clone(freeze: true) -> object (27.0)

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

...ンスなど一部のオブジェクトは複製ではなくインスタンス自身を返します。

@
param freeze false を指定すると freeze されていないコピーを返します。
@
raise ArgumentError TrueClass などの常に freeze されているオブジェクトの freeze され...
...#=> true
p(obj_d.tainted?) #=> true
p(obj_d.frozen?) #=> false
p(obj_d.respond_to?(:fuga)) #=> false
//}

@
see Object#initialize_copy

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

clone や dup はオブジェクト自身を複製するだけで、オブジェクトの指...
...#=> true
p(obj_d.tainted?) #=> false
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.frozen?) #=> false
p(obj_d.respond_to?(:fuga)) #=> false
//}

@
see Object#initialize_copy

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

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

Object#dup -> object (27.0)

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

...ンスなど一部のオブジェクトは複製ではなくインスタンス自身を返します。

@
param freeze false を指定すると freeze されていないコピーを返します。
@
raise ArgumentError TrueClass などの常に freeze されているオブジェクトの freeze され...
...#=> true
p(obj_d.tainted?) #=> true
p(obj_d.frozen?) #=> false
p(obj_d.respond_to?(:fuga)) #=> false
//}

@
see Object#initialize_copy

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

clone や dup はオブジェクト自身を複製するだけで、オブジェクトの指...
...#=> true
p(obj_d.tainted?) #=> false
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.frozen?) #=> false
p(obj_d.respond_to?(:fuga)) #=> false
//}

@
see Object#initialize_copy

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

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