値渡し(call-by-value) あるいは 値型(value-type)
僕の手元にリンゴがひとつある。
このリンゴのコピーを作り、「あげるよ」とあなたに手渡す。
あなたがこのリンゴを煮て食おうが焼いて食おうが
フルーツナイフでうさぎさんこしらえようが僕のリンゴは無傷。
参照渡し(call-by-reference) あるいは 参照型(reference-type)
僕の手元にリンゴがひとつある。
このリンゴを指差し、「あげるよ」とあなた告げる。
あなたがこのリンゴを齧れば僕のリンゴに傷がつく。
「参照渡し」ってコトバからは「間接的」なイメージがあるのに、
実はこっちの方が「直接的」なんだねー。
コピーと原本の違いとでも言えばいいだろうか、
原本をコピーしたものは原本じゃなくなるから、
原本を僕の手元に残したままあなたに渡すには指差す(参照)しかないわけな。
# 値と参照をうまーく説明する「たとえ」を探しています。