まつもと ゆきひろです

In message "[ruby-ext:01742] How to call initialize from new"
    on 01/05/19, "Kogule, Ryo" <kogule / mars.dti.ne.jp> writes:

|ruby-dev で“new から initialize を呼ぶべき”との話題がありましたが,C で書
|く時に initialize の引数が固定の場合,rb_fun_call を利用して良い物でしょう
|か? それとも rb_obj_call_init を使って inirtialzie routine の中で
|rb_scan_args で処理すべきなのでしょうか?

rb_obj_call_init()を使えばnewに与えられたブロックが
initializeにも渡されます。rb_funcallと比較して、それ以外の違
いはないように思います。

ただ、「rb_obj_call_init を使って inirtialzie routine の中で
rb_scan_args で処理すべき」というのは解せません。
rb_obj_call_init()を使おうがなにしようが initialize を実装す
る関数に引数がどう渡されるかは rb_define_method() の引数によっ
て決まります。initializeの引数が固定なら固定数の引数で受ける
だけでよいと思います。

                                まつもと ゆきひろ /:|)