Rubyのnewとinitialize
そういえば、Rubyってnewで新しいオブジェクトを作るのに、コンストラクタはinitializeなのはなんか統一感ないなと思っていたんですよね。
そこで、例によってドキュメントを見ると、
Objectクラスのインスタンスを生成して返します。
singleton method Object.new
このメソッドは Class#new から新しく生成されたオブ ジェクトの初期化のために呼び出されます。他の言語のコンストラクタに相当します。 デフォルトの動作ではなにもしません。
initialize には Class#new に与えられた引数がそのまま渡されます。
サブクラスではこのメソッドを必要に応じて再定義されること が期待されています。
initialize という名前のメソッドは自動的に private に設定され ます。
instance method Object#initialize
どうやらもこうやらも、別のメソッドだったのならしかたない。しかしなぜあえて分けたのだろうか…ここから読み取れることは、つまり…
と、何らかの思想のもとに分けた、ということになります。本元のドキュメントを参照したとはいえ、ソースを見てないので分かるのはこの程度の上っ面だけです。ソースが読みたくなってきたけどこういうのはどこにいったら見れるんだろう…