Thomas Hafner
1/27/2007 6:24:00 PM
"robin" <robin.houston@gmail.com> wrote/schrieb <1169920481.252703.112350@a75g2000cwd.googlegroups.com>:
> 2.times{|n| i,j = n,i; puts "i=#{i}, j=#{j.inspect}"}
>
> Can you explain why j is nil rather than 0, the second time round?
I'll try. Everytime the block is executed, new variables n, i and j
are created, because they don't already exist outside the block. If
you want i to be shared, it should already exist before, e.g.:
i = nil
2.times{|n| i,j = n,i; puts "i=#{i}, j=#{j.inspect}"}
Regards
Thomas