From: matz@... (Yukihiro Matsumoto) Date: 1997-01-06T07:32:18+09:00 Subject: [ruby-list:1563] Re: C++ ¥桼¥¶¤Î ¤¿¤á¤μê°ú (Ver. 0.1.1) まつもと ゆきひろです In message "[ruby-list:1537] Re: C++ ユーザのための手引 (Ver. 0.1.1)" on 96/12/27, Shin-ichiro Hara writes: |もう一つのポイントは print ですね。a の値を知るには print a とすれ |ばいいと思いがちですが、ruby では違う。ruby では print a は、a の |属するクラスの to_s メソッドによる結果を出力するだけで、a の値その |ものは見ようにも見られない。「参照か値か?」という実験をするのに、 |print を使うとしばしば混乱する、ということですね。 そうですね.その件については考えてなかったなあ. |さてここで問題です。:-) 次の様に言っても正しいでしょうか? | | ruby では Fixnum も含めて変数に格納されるのはオブジェクトの | 参照である。ただ Fixnum には破壊的操作をするメソッドが用意さ | れていないだけである。 うーん,「正しい」の定義によるような…. つまり,この命題は現在のrubyの実装系では真ではない(Fixnumだ けは即値なので)のですが,実装系は実行効率のために内部的にそ ういう実装をしているだけで,達成しようとしたモデルは全部のオ ブジェクトが参照であるものなので真である,といういい方もでき ると思います.いずれにしてもFixnumが即値であるかどうかによっ て実行結果に差が出ることはないはずなので,理解しやすいモデル の方が望ましい気がします.つまり作者の意向としては「(厳密に は違うにしても)正しいと思っていて欲しい」が正解です. いっそのことPythonみたいにFixnumも通常のオブジェクトであれば ややこしくなかったでしょうけど. まつもと ゆきひろ /:|)