On 24.01.2007 11:34, Maxime Guilbot wrote: > Look at the code below, I got strange results, I know that there is a > problem in the code but I can't find it. I expect to have an array like > this: > > [[4, 4], [8, 1024], [1024, 1024], [1024, 1024], [1024, 1024], [1024, > 1024], [1024, 1024], [1024, 1024], [1024, 1024], [1024, 1024]] > > at the ouput of get_next_10... > > Does someone has the idea? Your problem is aliasing: you're reusing the same @indexes over and over again. > Thanks a lot, > Maxime. > > class Dummy > def initialize > @indexes = Array.new(2, 1) > end > > def get_next > @indexes[0] = @indexes[0]*2 > @indexes[1] = @indexes[1]*2 > > @indexes Make that @indexes.dup or do get_next.dup in get_next_10. > end > > def get_next_10 > all = [] > for i in 0..9 > all << get_next > end > all > end > end > => nil > > d = Dummy.new > => #<Dummy:0x33b198 @indexes=[1, 1]> > > d.get_next_10 > => [[1024, 1024], [1024, 1024], [1024, 1024], [1024, 1024], [1024, > 1024], [1024, 1024], [1024, 1024], [1024, 1024], [1024, 1024], [1024, > 1024]] > > d.get_next > => [2048, 2048] > > d.get_next > => [4096, 4096] Kind regards robert