まつもと ゆきひろです
In message "[ruby-list:6254] Re: Ruby連載 第4話"
on 98/02/05, Kazuhisa YANAGAWA <katze / yuba.is.uec.ac.jp> writes:
|> で,pi == pi2 == Math::PI == 4.141592 になるようなモデルを意
|> 味するような気がするんですけど.違いますか? それはそれで使
|> いにくそう.
|
| そうならないように, 最初「数値定数は」と書いたものを「数値は」と書き
| 換えたんですが. ようするに immutable object は評価すると必ずコピーを
| 返す.
似た例としては現在の文字列定数がありますが,これはリテラルを
評価すると毎回新しいコピーを作りますが,代入のタイミングでは
コピーを作りません.「代入は参照の変更に過ぎない」ってのは
Rubyの言語モデルのかなり基本的な部分なんですが,ここを変更す
るのはかなり大胆な変更ですよね.
| ....ところで数値以外の immutable object って, なんかありましたっけ?
えーと,確かないです.もっともRubyのインスタンス変数は外から
操作できませんから,自分の内部状態の変更を許すメソッドを定義
しなけりゃimmutableってことになりますけど.
|> もうひとつ,Fixnumは即値である,という理由もあります.
|
| まえは「Fixnum が即値である事と, モデルとしてこんな事を考えるのは別
| に矛盾しない」と言っていたのに (^^?
いや,モデルとしては(若干の例外がありますが),矛盾しないんで
す.実装の全面変更になるんで怠け者の実装者(私のことだ)の熱
意が下がるだけで.^^;;;
まつもと ゆきひろ /:|)