clone/dupの挙動
あくまでshallow copyなので、a.aryもb.aryも同じ配列オブジェクトを参照する。
class TestClass attr_accessor :ary def initialize @ary = Array.new end end A = TestClass.new A.ary << "a" B = A.clone p A p B B.ary << "b" p A p B
%ruby clonetest.rb #<TestClass:0x2bfe238 @ary=["a"]> #<TestClass:0x2bfe170 @ary=["a"]> #<TestClass:0x2bfe238 @ary=["a", "b"]> #<TestClass:0x2bfe170 @ary=["a", "b"]>