How to list local-variables in Ruby?
def method
a = 3
开发者_如何学Go b = 4
some_method_that_gives # [a, b]
end
local_variables
It outputs array of symbols, presenting variables. In your case: [:a, :b]
local_variables
lists local variables but it lists them before they are defined. See this:
p local_variables
a = 1
p local_variables
this outputs
[:a]
[:a]
which may not be what you expect. Contrast with defined?
p defined? a
a = 1
p defined? a
which outputs the more anticipated
nil
"local-variable"
if you're looking for the list with their values:
variables = self.local_variables.each_with_object({}) { |key, hash| hash[key] = eval(key.to_s) }
精彩评论