Rubyでの変数のスコープ確認
Rubyでの変数とスコープをざっとまとめました。
# トップレベルの変数をメソッド foo = 'foo in toplevel' def display_foo puts foo #=> NameError トップレベルのローカル変数は参照できない end puts foo #=> foo in toplevelと表示される # display_foo #=> NameError greeting = 'Hello ,' people = %w(Alice Bob) people.each do |person| puts greeting + person # ブロック内ではトップレベルのgreetingは参照できる end # puts person #=> NameError ブロック内変数は参照できない # 定数は大文字で表記します FOO = 'foo' # ただし定数は代入可能(エラーは出ますが) FOO = 'bar' puts FOO # メソッド内で定数の定義はできません def set_foo FOO = 'foooooo' #=> dynamic constant assignment end