在ruby docs中,有这样的文字:
块参数实际上是局部变量。如果在块执行时存在同名的现有本地,则该变量将通过调用块来修改。这可能是也可能不是一件好事。
我写了下面的代码来测试这个:
x = 0
3.upto(6) {|x| puts x}
puts x
# output are:
# 3
# 4
# 5
# 6
# 0
变量x
没有改变。为什么?这违反了文档。
在ruby docs中,有这样的文字:
块参数实际上是局部变量。如果在块执行时存在同名的现有本地,则该变量将通过调用块来修改。这可能是也可能不是一件好事。
我写了下面的代码来测试这个:
x = 0
3.upto(6) {|x| puts x}
puts x
# output are:
# 3
# 4
# 5
# 6
# 0
变量x
没有改变。为什么?这违反了文档。