Programming Ruby 里面第48页的由字符串自动转化成数字是怎么回事啊?

程序代码是这样的:

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'

有谁知道是怎么一回事吗?

1个回答

each后面的是一个block,block里面的变量会改变外面的同名变量的值…
据说这个问题在1.9已经改掉了

立即提问
相关内容推荐