[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 1570] Re: Ruby のポイン
前橋です。
木下さん:
> >でも、この「名札」は、別の名札に「代入」できて、そうするとそっちの
> >名札に「名札の内容(名前?)」だけが複製されるわけですよね。
>
> 名札を代入するのではなくて、この名札を付けているオブジェクトに対し
> て別のこの名札も付ける、という感覚だろうと:)。
C++の参照だとそんな感じかもしれませんが...
# 参照自体には二度と代入できないので。
> >前田さんの図によると、「名札」というより「紐付けされた、(何も書いて
> >ない)タグ」のようにも見えますが、そのモデルでは「参照の代入」を
> >どうとらえるのでしょう?
>
> 名札1
> |
> |
> 名札2 --- [オブジェクト] --- 名札3
>
> と言う感じでしょうか。
ええと、この場合、変数xがあったとしたら、xは、
・名札そのもの?
・名札の入れ物?
「箱でない」というところからすると名札の入れ物ってことはなさそうですが...
xが名札そのものだとすると、別のものに割り当てることも出来るのは
なんか変なような...
まあ名札からつながっているひもを張り替えてもいいですが、その場合、
結局「ひもの隅」が名札に代入されてる感じがします。
> # やっぱ敢えて矢印状にしない方がいい気がした^^。
逆向きから辿れないという特性があるわけですけどね。
> ポインタの感覚だと代入ですが、名札だと付け替えという感覚で、まるで
> オブジェクトについて回るもののような感じなのかなぁ。そうすると、と
> ある名札を取り出した時、それは「オブジェクトへの参照である」と言わ
> れると、確かに先入観が無ければ受け入れられるかもという気になってい
> ると。
うーん、
if (aをつかう) {
x = a;
} else {
x = b;
}
x.doHogeHoge();
という処理について、「xへの代入」を使わずに説明するのはかえって
大変じゃないでしょうか?
以下余談;
超巨大な「メカニカルコンピュータ」があるとして、オブジェクトを
new すると、こっちの工場から、機械的なトグルスイッチで1ビットを
表現し、かつ必要な容量を持つ「オブジェクト」ががこーんと出てきて、
参照は本物のひもで実現し、必要があれば「CPUユニット」がひもを
たぐりよせて、ロボットアームがトグルをぱっちんとやることでビットを
変更し、GCの時には全体がよっこらしょと傾いてぐらぐらっと振動して
つながってないオブジェクトががらんごろんと転げ落ちる、というモデル
を妄想したんですが(笑)、こういうので、「参照変数」は、ひもの端っこ
をくわえ込むフォルダになるような気がします。
de 前橋