From: Jim Freeze Date: 2001-05-18T04:01:57+09:00 Subject: [ruby-talk:15339] Re: How to clone an object? On Fri, 18 May 2001, Dave Thomas wrote: > You could do something like: > > class K > attr_accessor :a > def initialize > @a = [1,2] > end > > def clone > copy = super > copy.a = a.clone > copy > end > end > > k1 = K.new > k2 = k1.clone > > k1.a[0] = 99 > k1.a #=> [99, 2] > k2.a #=> [1, 2] > Thanks, that works well. But, what if a is private. class K def initialize @a = [1,2] end def clone copy = super copy.a = @a.dup copy end end k1 = K.new k2 = k1.clone #=> NameError: undefined method `a=' for # Thanks ========================================================= Jim Freeze jim@freeze.org --------------------------------------------------------- No comment at this time. http://www.freeze.org =========================================================