local_variables
まだ割り当てられていない ( の呼び出し後に割り当てられた) ローカル変数を が返すのはなぜlocal_variables
ですか?
a = 2
@aa = 1
# a = b # this will raise an error.
puts "local: #{ local_variables }"
puts "instance: #{ instance_variables }"
b = 2
@bb = 2
puts "local: #{ local_variables }"
puts "instance: #{ instance_variables }"
結果:
local: [:a, :b]
instance: [:@aa]
local: [:a, :b]
instance: [:@aa, :@bb]
私が期待するのは、instance_variables
その時点で既に割り当てられている変数のみを返す のような動作です。