19/05/05 00:21:53.66 tvdtPjB+0.net
Ruby での、Jaggy 配列は、
ary = [ ] # 配列の配列
ary.push [ "a" ]
ary.push [ 1, 2 ]
p ary #=> [["a"], [1, 2]]
C/C++ 以外のたいていの言語では、数字などのprimitive 以外は、すべて参照。
(primitiveは参照にするよりも、その場所へ値を埋め込んだ方が速い)
外側の配列は、内側の配列の参照を持っている。
内側の配列は、(primitive以外の)各要素の参照を持っている
primitive以外は、コピーしても参照がコピーされるだけで、値はコピーされない。
つまり、同一インスタンスを指す。
別のインスタンスは作られない
new されていなければ、インスタンスは作られない。
代入しただけでは、参照がコピーされるだけ
これを、shallow copy (浅いコピー)と呼ぶ(同一インスタンス)。
new して、別のインスタンスを作ることを、deep copy (深いコピー)と呼ぶ(別のインスタンス)