Ruby では、新しいクラスを作成するときに、コンストラクター メソッドを次のように定義します。
class Thing
def initialize
do_stuff
end
end
ただし、実際にオブジェクトのインスタンスを作成すると、インスタンスではなくクラスを呼び出しinitialize
ていることに気付きます。new
では、代わりに を定義してみません::new
か?
class Thing
def self.new
do_stuff
end
end
定義されていない::new
シーンの背後にあるものはありますか? initalize
あの二人は全然違うの?定義は::new
機能しますか? それとも、def initialize
より短い(ではない)だけdef self.new
ですか?
格差にはそれなりの理由があるに違いないと思う。