Yue*_*oum 1 ruby
在ruby docs中,有这样的文字:
块参数实际上是局部变量.如果块执行时存在同名的现有本地,则通过调用该块来修改该变量.这可能是也可能不是好事.
我编写了下面的代码来测试这个:
x = 0 3.upto(6) {|x| puts x} puts x # output are: # 3 # 4 # 5 # 6 # 0
变量x不会更改.为什么?这是针对文档的.
x
Dom*_*nef 6
在Ruby 1.8及更早版本中,就是这种情况.从1.9开始,块变量影响局部变量.
因此,简而言之:您正在阅读的文档和您正在测试的Ruby不是同一版本.
归档时间:
13 年 前
查看次数:
224 次
最近记录: