まつもと ゆきひろです
In message "[ruby-list:4651] Re: Object#freeze"
on 97/09/25, "EGUCHI Osamu" <eguchi / shizuokanet.or.jp> writes:
|えぐち です。
|> 現在のrubyでインスタンス変数を変更するメソッドが検出できると
|> 思ってなかったので...。
|
|ここ詳しく知りたいです。
|ビルトインクラスのインスタンスへの変更を例外なり、特異メソッド
|なりで捕捉できれば非常にきれいな表現になりそうなんですが、、
ええと,「インスタンス変数を変更するメソッドの検出」という処
理は現在のところ行っていません.インスタンス変数の変更を行っ
た時点で例外をあげるという処理は簡単に追加できます.ただし,
ビルトインクラスのインスタンスはインスタンス変数を持てません
し,状態の変更を検出するコードが入っていないものもありますの
で,完全と言うわけにはいかないと思いますけど.
|そうおもいます。
|immutableの意味付けとして
| 1) Array#<< で例外発生!
| 2) []= でも例外発生!
| 3) += でも = でも例外発生!
|のような非常に deep なものとしてです。
|
| 1)、2)はオブジェクトの性質
| 3)は変数の性質なので、ぜんぜん別個のことですけど。
3は今もこれからもrubyではサポートしません.
まつもと ゆきひろ /:|)