Skip to content

Commit 4ab8023

Browse files
authored
Merge pull request #2924 from kyanagi/object-initialize-copy-initialize-dup
`Object#initialize_copy`と`Object#initialize_dup`の説明を追加
2 parents b2d842c + 328272c commit 4ab8023

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

refm/api/src/_builtin/Object

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1809,7 +1809,9 @@ p it
18091809

18101810
このメソッドは self を obj の内容で置き換えます。ただ
18111811
し、self のインスタンス変数や特異メソッドは変化しません。
1812-
[[m:Object#clone]], [[m:Object#dup]]の内部で使われています。
1812+
1813+
デフォルトでは、[[m:Object#clone]] の内部で [[m:Object#initialize_clone]] から、
1814+
また [[m:Object#dup]] の内部で [[m:Object#initialize_dup]] から呼ばれます。
18131815

18141816
initialize_copy は、Ruby インタプリタが知り得ない情報をコピーするた
18151817
めに使用(定義)されます。例えば C 言語でクラスを実装する場合、情報
@@ -1892,6 +1894,28 @@ check obj.clone
18921894
# singleton methods: :bar
18931895
#@end
18941896

1897+
@see [[m:Object#initialize_clone]], [[m:Object#initialize_dup]]
1898+
1899+
--- initialize_clone(obj) -> object
1900+
1901+
[[m:Object#clone]] がオブジェクトを複製する際に呼び出すメソッドです。
1902+
1903+
デフォルトでは [[m:Object#initialize_copy]] を呼び出します。
1904+
1905+
initialize_clone という名前のメソッドは自動的に private に設定されます。
1906+
1907+
@see [[m:Object#initialize_copy]], [[m:Object#initialize_dup]]
1908+
1909+
--- initialize_dup(obj) -> object
1910+
1911+
[[m:Object#dup]] がオブジェクトを複製する際に呼び出すメソッドです。
1912+
1913+
デフォルトでは [[m:Object#initialize_copy]] を呼び出します。
1914+
1915+
initialize_dup という名前のメソッドは自動的に private に設定されます。
1916+
1917+
@see [[m:Object#initialize_copy]], [[m:Object#initialize_clone]]
1918+
18951919
--- respond_to_missing?(symbol, include_private) -> bool
18961920

18971921
自身が symbol で表されるメソッドに対し

0 commit comments

Comments
 (0)