- 399 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 00:21:53.66 ID: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 (深いコピー)と呼ぶ(別のインスタンス)
|

|