ローカル変数のスコープ
ローカル変数のスコープについて調べたのでメモ
ローカル変数のスコープは、変数が宣言されたブロック、メソッド定義、クラス定義、モジュール定義の終わりまで。 これらの中でブロックでは既存のローカル変数のスコープを引き継ぎ、 メソッド定義、クラス定義、モジュール定義では引き継がない。
class Sample var1 = 2 def sample # p "var1 : #{var1}" ### undefined local variable エラー var1 = 1 clo = lambda do |n| puts var1 + n end return clo end end var1 = 0 clo = Sample.new.sample clo.call(3) # => 4