このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 3.2 リファレンスマニュアル

instance method Object#initialize_clone

initialize_clone(obj, freeze: nil) -> objectRuby 1.9.2 から[permalink][rdoc][edit]

Object#clone がオブジェクトを複製する際に呼び出すメソッドです。

デフォルトの実装は freeze キーワード引数を無視して Object#initialize_copy を呼び出し、self を返します。複製したオブジェクトを freeze するかどうかは、このメソッドの呼び出し元である Object#clone が判断します。

freeze キーワード引数には、Object#clone に渡された freeze の値がそのまま渡されます。 clone と dup で挙動を変えたいなどの理由でこのメソッドを再定義する場合は、 freeze キーワード引数を受け取り、super へそのまま渡すようにしてください。

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

[PARAM] freeze:
Object#clone に渡された freeze の値(true, false, nil のいずれか)が渡されます。

[SEE_ALSO] Object#clone, Object#initialize_copy, Object#initialize_dup