【本題】ブロック引数とブロック外の変数が同名の場合の処理ブロック引数と、そのブロック外部の変数を、同じ名前にした場合、処理はどの様になるのかをまとめました。#{p}"end上記の場合、ブロック引数とブロック外部の変数が、同じ「p」と命名されています。この実行した場合、下記の様な出力結果となります。penつまり、ブロック外部の変数は一切参照されない結果となりました。この様に、名前が重複した際に、片方の変数やメソッドを参照できなくする機能をシャドーイングと呼びます。シャドーイングは原則利用しない上記の通り、シャドーイングによりプログラムは正常に実行されますが、このコードだとどちらの変数が呼び出されるのか瞬時に理解するのが難しく可読性が落ちます。原則同じ名前を使う事は避けた方が賢明でしょう。日)IBMのWatsonきっかけでエンジニアに憧れて28歳未経験でWebエンジニアへ転職。2018年12月から3年間で「10000時間」をプログラミングに捧げる計画を立て、学んだことをブログの投稿中。Activitiesryoutakuこのサイトについてプライバシーポリシ。