【发布时间】:2011-05-28 02:29:30
【问题描述】:
def method
a = 3
b = 4
some_method_that_gives # [a, b]
end
【问题讨论】:
标签: ruby metaprogramming local-variables
def method
a = 3
b = 4
some_method_that_gives # [a, b]
end
【问题讨论】:
标签: ruby metaprogramming local-variables
它输出符号数组,表示变量。在你的情况下:[:a, :b]
【讨论】:
local_variables 列出局部变量,但它会在定义之前列出它们。看到这个:
p local_variables
a = 1
p local_variables
这个输出
[:a]
[:a]
这可能不是您所期望的。对比defined?
p defined? a
a = 1
p defined? a
哪个输出更值得期待
nil
"local-variable"
【讨论】:
如果您正在查找包含其值的列表:
variables = self.local_variables.each_with_object({}) { |key, hash| hash[key] = eval(key.to_s) }
【讨论】: