From: Robert Dober Date: 2007-07-13T22:00:07+09:00 Subject: Re: Loop over an array that changes the elements On 7/13/07, benjohn@fysh.org wrote: > > Hi, > > > > I have a rather simple question. I have an array and want to change the > > elements of the array in a loop. For example in Java, you would write: > > > > int[] numbers = {1, 2, 3} > > > > for(int i = 0; i < numbers.length; i++) > > { > > numbers[i] = numbers[i] * 2 > > } > > > > > > In Ruby the common way to loop over an array is Array#each > > > > But > > > > numbers = [1, 2, 3] > > > > numbers.each do |num| > > num = num * 2 > > end > > > > would not change the array itself. > > > > Of course, you can write something like > > > > for i in 0 .. numbers.length-1 do > > numbers[i] = numbers * 2 > > end > > > > But this in my eyes is not really the Ruby way. Is there a standard way > > of doing this? > > numbers = numbers.map {|number| numer * 2} Hmm what about the GC? > > Cheers, > B > > > -- I always knew that one day Smalltalk would replace Java. I just didn't know it would be called Ruby -- Kent Beck