ローカル変数
1. ローカル変数のスコープは、宣言した位置からその変数が宣言されたスコープやブロックの終わりまで。
2. 宣言は、たとえ実行されなくても宣言したことになる(例: 後置if)
code:ruby
# 1. ローカル変数のスコープは、宣言した位置からその変数が宣言された
# ブロック、メソッド定義、またはクラス/モジュール定義の終りまでです。
# (A) の部分はスコープに入らない
2.times {
p defined?(v) # (A)
v = 1 # ここ(宣言開始)から
p v # ここ(ブロックの終り)までが v のスコープ
}
# => nil
# 1
# nil <- これが nil であることに注意
# 1
# 2. 宣言は、たとえ実行されなくても宣言とみなされます。
v = 1 if false # 代入は行われないが宣言は有効
p defined?(v) # => "local-variable"
p v # => nil