ruby - "shadowing"在 Ruby 中是什么意思?

标签 ruby shadow

如果我在 Ruby 1.9 下打开警告并执行以下操作:

$VERBOSE = true
x = 42
5.times{|x| puts x}

我明白了

warning: shadowing outer local variable - x

推测这与使用 x 作为 block 参数以及 block 外的变量有关,但“阴影”是什么意思?

最佳答案

阴影是指您有两个同名的不同局部变量。据说在内部作用域中定义的变量“遮蔽”了外部作用域中的变量(因为只要内部变量在作用域中,外部变量现在就不再可访问,即使它在其他情况下也会在作用域中)。

因此在您的情况下,您无法访问 block 中的外部 x 变量,因为您有一个同名的内部变量。

关于ruby - "shadowing"在 Ruby 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6259314/

相关文章:

css - 两个输入彼此相邻,带有 box-shadow

Android "elevation"不显示阴影

ruby-on-rails - 在rails控制台上创建数据库记录时出错

ruby - 包含文件的预处理器

ruby-on-rails - 在 gem 中使用 ActiveRecord 模型 - 如何处理数据库配置

ios - 如何为 UISegmentedControl 设置阴影?

jquery - PNG 透明度问题 - 带有黑色阴影的褪色图像 - IE 中的边框

ruby-on-rails - Gem 问题,数据库 Rake 中止

ruby-on-rails - heroku sqlite 1.3.6 问题?

objective-c - maskToBounds 设置为 NO 似乎没有效果