程序代码是这样的:
a = [1, 2]
b = 'cat'
a.each {|b| c = b * a[1] }
p a
p b
defined?(c)
结果如下:
[1,2]
2
nil
就是说 b 运行的结果变成了2,而不是原先的'cat'
有谁知道是怎么一回事吗?
程序代码是这样的:
a = [1, 2]
b = 'cat'
a.each {|b| c = b * a[1] }
p a
p b
defined?(c)
结果如下:
[1,2]
2
nil
就是说 b 运行的结果变成了2,而不是原先的'cat'
有谁知道是怎么一回事吗?
each后面的是一个block,block里面的变量会改变外面的同名变量的值…
据说这个问题在1.9已经改掉了