如果我执行以下操作并在Ruby 1.9下打开警告:
$VERBOSE = true
x = 42
5.times{|x| puts x}
Run Code Online (Sandbox Code Playgroud)
我明白了
warning: shadowing outer local variable - x
Run Code Online (Sandbox Code Playgroud)
据推测,这与使用x作为块参数以及块外的变量有关,但"阴影"是什么意思?
sep*_*p2k 49
阴影是指具有两个具有相同名称的不同局部变量.据说内部范围中定义的变量"遮蔽"外部范围中的变量(因为只要内部变量在范围内,外部变量现在就不再可访问,即使它在其他范围内也是如此).
因此,在您的情况下,您无法访问x块中的外部变量,因为您有一个具有相同名称的内部变量.
| 归档时间: |
|
| 查看次数: |
8966 次 |
| 最近记录: |