ども、根暗井です ^^)

From: K.Kosako
Date: 2001/03/16 18:04:03
Subject: [ruby-list:28793] Re: freezeした文字列の書き換えチェック方法

>> 何もおかしなところは、見当たりませんが。
>
>わかりました。
>文字列オブジェクトの凍結ではなく、
>変数の参照自体を凍結したいという要求でしょうか?

はい、そうです。そういう事で [ruby-list:28791] の前田さんの
方法で解決できました。


>定数を使用すれば良いかと思いましたが、
>定数の再代入は警告表示だけで、
>例外が発生するわけではないので、
>ご期待されている動作にはなりませんね。

今回は書き換えを防ぐ、というより書き換えを通知するという
意図だったので定数というのはちょっと抵抗があります。
# だったら freeze だって趣旨と違うだろが<俺

それと今回は文字列なので replace を使えばいいのですが、
他の種類のデータの場合(数字とか、true/false) は使えません。
直接値をチェックせず、型を意識しないで書き換えを通知出来れば
便利だと思ったんですが・・・

                                        By  根暗井
------- 根暗井 == 櫻井 -------- (E-mail : nekurai / be.to) -------
値をチェックして代入したり例外を発生するクラスを定義すれば OK か
----------------------------------------------------------------