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/

相关文章:

ruby - Ruby 中 call/cc 和 "ensure"的语义

ruby - 如何在 Nokogiri 中使用带有 XPath 的 xmlns 声明

java - libGDX 3D 阴影

javascript - 如何提高 three.js 中的阴影质量

ruby - 只返回 xpath 的值 - Nokogiri Ruby

ruby - 如何计算在 Ruby 中创建的对象数

ruby-on-rails - 我应该在 Rails 匹配 :controller(/:action(/:id)) or resources? 中使用哪些路线

javascript - ThreeJS怪​​异条纹阴影

android - TextView 添加渐变和阴影

c++ - 级联阴影贴图闪闪发光