What does “shadowing” mean in Ruby?

Shadowing is when you have two different local variables with the same name. It is said that the variable defined in the inner scope “shadows” the one in the outer scope (because the outer variable is now no longer accessible as long as the inner variable is in scope, even though it would otherwise be in scope).

So in your case, you can’t access the outer x variable in your block, because you have an inner variable with the same name.

Leave a Comment