Che*_*eng 28 ruby metaprogramming local-variables
def method
a = 3
b = 4
some_method_that_gives # [a, b]
end
Run Code Online (Sandbox Code Playgroud)
local_variables
列出局部变量,但在定义它们之前列出它们.看到这个:
p local_variables
a = 1
p local_variables
Run Code Online (Sandbox Code Playgroud)
这个输出
[:a]
[:a]
Run Code Online (Sandbox Code Playgroud)
这可能不是你所期望的.对比defined?
p defined? a
a = 1
p defined? a
Run Code Online (Sandbox Code Playgroud)
产出更多的预期
nil
"local-variable"
Run Code Online (Sandbox Code Playgroud)