From: matz@... (Yukihiro Matsumoto) Date: 2002-03-08T17:07:40+09:00 Subject: [ruby-dev:16276] Re: pstore.rb and sync.rb まつもと ゆきひろです In message "[ruby-dev:16273] Re: pstore.rb and sync.rb" on 02/03/08, Minero Aoki writes: |メソッドではなくブロックにして、オブジェクト側で instance_eval |するのはどうでしょうか。たとえばモジュール側では ふうむ。 |利点は三点です。 | | * 初期化ブロック定義のインターフェイスがメソッドなので、 | 定義を簡単に (かつ特別扱いすることなく) 検知できる。 これはありますよね。 | * module_function では、モジュール自体と include した | オブジェクトの両方を同じように初期化したいことがある。 | ブロックならば使いまわし可能。 そのかわり「selfのすりかえ」という難しい問題をまた増やすこと になります。また、(ライブラリならともかく)coreにそれを取り込 むことにもちょっと(だいぶ)抵抗が。 | * ブロックならば先に集めておくことができる。 | (オブジェクト生成のたびに ancestors を | たどってチェック……というコストをなくせる) これは動的にincludeされた時のことなどを思うと難しいかも。 ああ、文句ばっかり。。。 まつもと ゆきひろ /:|)