Hi,
I have a piece of code below in which I;
1.....make a new NumberList object and append two MyNumber objects.
2.....copy the NumberList object and append a further MyNumber object.
However after this both objects are the same.
Any help would be greatly appreciated.
Thanks,
Kieran
···
---------------------------------------------------
class MyNumber
def initialize(x)
@x=x
end
attr_accessor :x
end
class MyNumberList
def initialize @nums = Array.new
end
def append(num) @nums.push(num)
self
end
def sum
sum=0 @nums.each {|s| sum += s.x }
return sum
end
end
Hi,
I have a piece of code below in which I;
1.....make a new NumberList object and append two MyNumber objects.
2.....copy the NumberList object and append a further MyNumber object.
However after this both objects are the same.
[...]
zl2=zl1
That's why they're the same: by doing this assignment, you're storing
a new reference to the object in zl2. But it's still the same object.
David
···
On Thu, 26 Jan 2006, kieran kirwan wrote:
--
David A. Black
dblack@wobblini.net
"Ruby for Rails", from Manning Publications, coming May 1, 2006!
Hi,
I have a piece of code below in which I;
1.....make a new NumberList object and append two MyNumber objects.
2.....copy the NumberList object and append a further MyNumber object.
However after this both objects are the same.
Any help would be greatly appreciated.
As said, you doesn't copy the contents of zl1 in zl2: you make zl2 and
zl1 reference the same objet. What you want to do is to copy the
*contents* of zl1 into zl2.