This has me confused (It's getting to be a frequent experience).
----------------8<----------------
SPACE = 1
a = Array.new(5)
b = Array.new(5, SPACE)
a.each { |el|
el = SPACE
}
puts "a = #{a.join("-")}"
puts "b = #{b.join("-")}"
----------------8<----------------
I'd expect to have a first output line similar to the second,but I get:
rasputin@shrike rasputin$ ruby /tmp/q
a = ----
b = 1-1-1-1-1
rasputin@shrike rasputin$
Now, is this because each is returning a copy of the element?
It's the most plausible explanation
(because if I replace a.each with a.collect! it works as I expected)
but if so I'm surprised it hasn't bitten me on the ass before.
I know the Array is full of nils, but can't see why that would
cause what I'n seeing.
Please hit me wirh a clue bat. Thanks.
--
Rasputin :: Jack of All Trades - Master of Nuns