小林です。 サブジェクトを変えました。 GOTO Kentaro さんへの返信: > >テストプログラムで試してみました.CVARが定数なのに > > CVAR[100]="abc" > >等とできるのが最初は奇異に感じましたが、これはこれで納得しました。 > > 定数というのは代入によって与えられる CVAR という名前と、それ > が指してるオブジェクト(配列)の結びつきが定数的だということで > す。[]= や push で設定できるようなオブジェクトの「内容」が定 > 数的という意味ではないです。要すれば再代入すると怒られる名前 > のことを定数といってるわけです。 > はい、定数CVARが参照している領域(この表現が正しいかは別として) は「定数」ではないということですね(この意味で「納得」していました)。 > なお、配列や文字列は freeze というメソッドによってそのオブジェ > クトの内容の変更を禁止することが出来ます。 > ruby本493にfreezeは「配列の凍結(変更禁止)」とありました。 CVAR = [] CVAR[0]=0 CVAR.freeze CVAR[0] = 100 で確かに、can't modify frozen array となりました。 配列サイズだけの「freeze」もあったらいいな(単なる思い付きです) と思いました。 ところで、freezeがあるのならmeltはあるのでしょうか? 因みにCVAR.melt、CVAR.unfreezeともにだめでした。 定数と関連してfreezeを教えていただきましてありがとうございます。 このように、関連した情報というものは、なかなか一人では得がたい ものです。これからも、よろしくお願い致します。 小林 茂雄 E-Mail: shigeo / tinyforest.gr.jp Home Page: http://www.tinyforest.gr.jp