みつじです。
naka aki さん、
面白いですね。インスタンス化してから機能を追加できるんですね。
Cの関数ポインタとかC#のデリゲートとかでも同じようなことが
出来そうですけど、こんな簡単には出来ないでしょうね。
>--- MITSUJI Takamasa <mitsuji@....jp> からのメッセージ:
>> Rubyは勉強したことがないので分かりません。何か新しいことが出来るのでしょ
>> うか。
>
>RubyだとObject#extend(
>http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Object#extend )
>なんてな真似ができるんで、
>動的分類を正にやれちゃうかな、と思った…んですが、
>
>#クラス、モジュール定義
>module M処理済み
> def hoge; puts "処理済み!"; end
>end
>module M未処理
> def hoge; puts "未処理!"; end
>end
>class C修正提案
>end
>
>#呼び出し
>c=C修正提案.new
>c.extend(M未処理)
>c.hoge
>c.extend(M処理済み)#分類遷移!
>c.hoge
>c.extend(M未処理) #また最初の分類に戻れ!
>c.hoge
>c.extend(M処理済み)
>c.hoge
>
>#実行&結果
>$ ruby -Ks a.rb
>未処理!
>処理済み!
>処理済み! (←ここが未処理になるのを期待してたんだけど…)
>処理済み!
>
>ありゃ。同じmoduleを再び召還するのは駄目らしいです(^^;;;
>
>
>__________________________________
> Take an action against poverty
> http://pr.mail.yahoo.co.jp/whiteband/