[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 1575] Re: Ruby のポイン
In article <20010307200628.540e00d3.32445@xxxxxxxxxxx>
前橋 和弥 wrote:
>> >でも、この「名札」は、別の名札に「代入」できて、そうするとそっちの
>> >名札に「名札の内容(名前?)」だけが複製されるわけですよね。
>>
>> 名札を代入するのではなくて、この名札を付けているオブジェクトに対し
>> て別のこの名札も付ける、という感覚だろうと:)。
>
>C++の参照だとそんな感じかもしれませんが...
># 参照自体には二度と代入できないので。
あ、以降に書かれている通り、札についてるひもを結ぶ感覚なんだろう
と。
>> >前田さんの図によると、「名札」というより「紐付けされた、(何も書いて
>> >ない)タグ」のようにも見えますが、そのモデルでは「参照の代入」を
>> >どうとらえるのでしょう?
>>
>> 名札1
>> |
>> |
>> 名札2 --- [オブジェクト] --- 名札3
>>
>> と言う感じでしょうか。
>
>ええと、この場合、変数xがあったとしたら、xは、
>
>・名札そのもの?
>・名札の入れ物?
>
>「箱でない」というところからすると名札の入れ物ってことはなさそうですが...
>
>xが名札そのものだとすると、別のものに割り当てることも出来るのは
>なんか変なような...
>
>まあ名札からつながっているひもを張り替えてもいいですが、その場合、
>結局「ひもの隅」が名札に代入されてる感じがします。
ひもの隅がオブジェクトに結ばれているという感覚かと^^。
>> # やっぱ敢えて矢印状にしない方がいい気がした^^。
>
>逆向きから辿れないという特性があるわけですけどね。
う。そのとおりです。モデリングって難しい^^。
>> ポインタの感覚だと代入ですが、名札だと付け替えという感覚で、まるで
>> オブジェクトについて回るもののような感じなのかなぁ。そうすると、と
>> ある名札を取り出した時、それは「オブジェクトへの参照である」と言わ
>> れると、確かに先入観が無ければ受け入れられるかもという気になってい
>> ると。
>
>うーん、
>
> if (aをつかう) {
> x = a;
> } else {
> x = b;
> }
>
> x.doHogeHoge();
>
>という処理について、「xへの代入」を使わずに説明するのはかえって
>大変じゃないでしょうか?
いや、Rubyモデル(真偽は不明^^)では、xという名札をaという名札が参
照しているオブジェクトに付けるか、bという名札が参照しているオブジ
ェクトに付けるか、と説明されるんだと思います。
「名札がポイントする」というよりは「名札が参照する」の方が自然と
いわれれば自然だなと*Rubyにおいては*納得したということで。
結局変数とか代入って用語は変わらず使うわけですから、初心者に説明
する時のたとえの話しとは思いますが、そうやって理解すれば、変数が
参照するって言うのはそういうもんだ、とすんなり参照という用語が理
解出来るのではないかと。
で、Javaはそうはいかない例が多くて結局問題だと^^。
>以下余談;
>超巨大な「メカニカルコンピュータ」があるとして、オブジェクトを
>new すると、こっちの工場から、機械的なトグルスイッチで1ビットを
>表現し、かつ必要な容量を持つ「オブジェクト」ががこーんと出てきて、
>参照は本物のひもで実現し、必要があれば「CPUユニット」がひもを
>たぐりよせて、ロボットアームがトグルをぱっちんとやることでビットを
>変更し、GCの時には全体がよっこらしょと傾いてぐらぐらっと振動して
>つながってないオブジェクトががらんごろんと転げ落ちる、というモデル
>を妄想したんですが(笑)、こういうので、「参照変数」は、ひもの端っこ
>をくわえ込むフォルダになるような気がします。
そんな訳で、私はひもの端っこを逆に受け取っています。
In article <20010307123749.540e00d3.04221@xxxxxxxxxxx>
前橋 和弥 wrote:
>> なんとか探せば見つかるかといったところです^^。
>> # Webの整理中。
>
>JavaHouseの雨宮さんの投稿でピンと来て、探してみたらありました。
あ、「なんとか探せば」は探せば置いてある本屋もあるかも、
でした^^。
失礼しました_o_。
--
木下 信@ひらつか
http://www.sk-jp.com/
「JavaMail完全解説」サポートページ(工事中)
http://www.sk-jp.com/book/javamail/