【解説】まつもと ゆきひろのRuby検定【問題7】
eachメソッドのブロックには,ブロックパラメータ|b|が定義されています。ブロック内では,配列の要素の1と2が変数bに順に取りだされます。ただ,このコードのブロック内では変数bの値は使用されていません。 この問題のポイントは,eachメソッドの実行後表示される変数bの値です。 変数bには,eachメソッドの実行前に,"world!"が代入されています。 コードを実行すると,変数bの値としてブロックパラメータで定義されている変数bの最後の値が出力されています。このコード中のすべての変数bは,同一スコープ内の同一の変数になります。 ただし,eachメソッドを実行する前の,b="world!"がなかったらこのコードは未定義のローカル変数を参照したとしてエラーになります。 |
更新情報
|
||||||||||||||||||||||||||||||||||||||||||