From: matz@... (Yukihiro Matsumoto) Date: 1998-04-16T12:14:18+09:00 Subject: [ruby-list:7552] Re: クラスの変更 まつもと ゆきひろです In message "[ruby-list:7509] クラスの変更" on 98/04/15, Mitsuru Ogino writes: |荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。 | |大変馬鹿なことを考えているような気がしますが、あるオブジェクトが、自分自 |身のクラスを変更することというのは可能なのでしょうか? そのような機能は(ある例外を除いて)rubyには存在しません. Smalltalkにはもともとbecome:というメソッドでクラスの変更が出 来る機能がありますし,CLOSにもchange-classというクラス変更の ための関数があります. が,Smalltalkのbecome:は「邪悪なメソッド」「使うな」との評価 を欲しいままにしてますし(実装によっては取り除かれている), CLOSも特殊な用途以外には使わない方が良いということになってい るような気がします. が,rubyはCで拡張モジュールを書けばなんでも有りなので,そう いう機能を実装することは出来ます.実際, IO#reopen というメソッドはそれを行っています.が,いずれにしても一般的 にはお勧めできないと思いますよ. まつもと ゆきひろ /:|)