def method
a = 3
b = 4
some_method_that_gives # [a, b]
end
Как перечислить локальные переменные в Ruby?
Ответ 1
Он выводит массив символов, представляющих переменные. В вашем случае: [:a, :b]
Ответ 2
local_variables
перечисляет локальные переменные, но они перечисляют их до их определения. Смотрите это:
p local_variables
a = 1
p local_variables
это выводит
[:a]
[:a]
который может и не быть тем, что вы ожидаете. Контраст с defined?
p defined? a
a = 1
p defined? a
который выводит более ожидаемый
nil
"local-variable"